位置:- 正文

java读写锁的特性(java 读写锁 map)

编辑:rootadmin

推荐整理分享java读写锁的特性(java 读写锁 map),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java中读写锁,java读写锁的使用场景,java读写锁源码分析,java读写锁的使用场景,java读写锁的使用场景,java读写锁源码分析,java读写锁的使用场景,java读写锁的使用场景,内容如对您有帮助,希望把文章链接给更多的朋友!

java读写锁的特性(java 读写锁 map)

626

1、公平选择性,支持非公平和公平锁获取,吞吐量不公平优于公平。

2、重进入,读锁和写锁都支持线程重进入。

3、锁降级,遵循获取写锁、获取读锁、释放写锁的顺序,写锁可以降级为读锁。

实例

publicclassReadWriteLockTest{publicstaticvoidmain(String[]args){finalQueueq=newQueue();for(inti=0;i<3;i++){newThread(){@Overridepublicvoidrun(){while(true){q.get();.start();newThread(){@Overridepublicvoidrun(){while(true){q.put(newRandom().nextInt(10000));.start();classQueue{//共享数据,只能有一个线程能写该数据,但可以有多个线程同时读该数据。ReadWriteLockrwl=newReentrantReadWriteLock();privateObjectdata=null;//共享数据,只能有一个线程能写数据,但可以有多个线程读该数据publicvoidget(){//上读锁,其他线程只能读不能写rwl.readLock().lock();try{System.out.println(Thread.currentThread().getName()+"bereadytoreaddata!");Thread.sleep((long)(Math.random()*1000));System.out.println(Thread.currentThread().getName()+"havereaddata:"+data);catch(InterruptedExceptione){e.printStackTrace();finally{rwl.readLock().unlock();publicvoidput(Objectdata){//上写锁,不允许其他线程读也不允许写rwl.writeLock().lock();try{System.out.println(Thread.currentThread().getName()+"bereadytowritedata!");Thread.sleep((long)(Math.random()*1000));this.data=data;System.out.println(Thread.currentThread().getName()+"havewritedata:"+data);catch(InterruptedExceptione){e.printStackTrace();finally{rwl.writeLock().unlock();
本文链接地址:https://www.jiuchutong.com/zhishi/310457.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/zhishi/310458.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络