ReadWriteLock
ReadWriteLock 读写锁,只有读读不互斥,其他都互斥。写了个小demo,来加深下印象。
public class MyChahe {private Map map=new HashMap<>();
private ReadWriteLock lock=new ReentrantReadWriteLock();
public void put(String key,Object value){
try{
lock.writeLock().lock();
System.out.println("现在开始进行put操作----------");
map.put(key,value);
Thread.sleep(5000);
System.out.println("put操作结束----------");
}catch (Exception e){
e.printStackTrace();
}finally{
lock.writeLock().unlock();
}
}public void get(String key){
try{
lock.readLock().lock();
System.out.println("现在开始进行get操作----------");
Object value = https://www.it610.com/article/map.get(key);
System.out.println("get操作结束----------,value-->"+value);
}catch (Exception e){
e.printStackTrace();
}finally{
lock.readLock().unlock();
}
}
}
public class LockTest {public static void main(String[] args) throws InterruptedException {
MyChahe cache=new MyChahe();
new Thread(()->{
cache.put("1","aaaaaaaaaa");
}).start();
Thread.sleep(300);
new Thread(()->{
cache.get("1");
}).start();
}
}
【ReadWriteLock】当有线程获取写锁的时候,其他线程去调用读相关操作,没办法获取读锁,只能等待写锁释放,才可以获取。
推荐阅读
- 我用我的坚持来推动读写
- HDFS读写数据流
- 2018年6月25日+06号蒋昕妍+《卓有成效的管理者》第五章+21天阅读写作自律计划
- 2018年7月10日+20号water+最美的教育最简单+21天阅读写作自律计划
- 鲤鱼跃龙门&心灵读写(第260天)
- java文件读写操作实例详解
- python文件读写(二)-rar|python文件读写(二)-rar, zip,tar, gz压缩,解压缩文件
- Java|图解四大IO模型与原理
- 2018年7月26-风行早安-《林汉达中国历史故事集》-21天坚持阅读写作自律计划
- 用Pandas库实现MySQL数据库的读写