admin管理员组文章数量:1599543
对于ReentrantLock创建公平锁的情况,可能并不会一直公平,本人测试的过程中就遇到过一次不公平的现象.
还有就是对Condition的使用的理解:
1.condition是和ReentrantLock配合使用的,condition要和某一个ReentrantLock绑定.
2.当在一个线程调用了condition.await()方法后,会使释放与condition关联的对象锁,此时,该线程会卡死在这个方法处,直到该方法返回,才会从该方法处重新运行,
在该方法返回之前,此线程必须重新获取该对象锁,该方法返回后,当前线程一定会拥有该对象锁(官方描述).
3.实践后发现,调用condition.await()方法后,会释放当前线程拥有的对象锁(即ReentrantLock),无论此线程对该对象上了多少次锁.
4.当该方法返回后,此线程会重新恢复到未调用该方法之前所拥有的对象锁的数量.
5.一个ReentrantLock可以和多个Condition绑定,多个condition可以分别在不同的子线程里面调用await方法,然后使用对应的condition唤醒某一个因该condition在等待的线程,所以说使用condition可以显示的指定唤醒哪一个线程,而notify却不能.
本文标签: ReentrantLockcondition
版权声明:本文标题:ReentrantLock的Condition使用总结 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728324652a1154279.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论