package com.lock; import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class ReadWriteLock { static Map<String,Object> map = new HashMap<String , Object>(); static ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); static Lock r = rwl.readLock(); static Lock w = rwl.writeLock(); public static final Object get(String key){ r.lock(); try{ return map.get(key); }finally { r.unlock(); } } public static final Object put(String key , Object value ){ w.lock(); try { return map.put(key,value); }finally { w.unlock(); } } public static final void clear(){ w.lock(); try{ map.clear(); }finally { w.unlock(); } } }