码迷,mamicode.com
首页 > 其他好文 > 详细

ReentrantLock

时间:2018-06-04 14:12:38      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:image   com   syn   选择   用法   java虚拟机   利用   基本   监视   

ReentrantLock,是一个可重入的互斥锁,它具有与使用synchronized方法和语句锁访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。

ReentrantLock的基本用法:

技术分享图片

利用ReenthrantLock实现的线程程序中,线程没有交替,数据都是分组打印的,说明:一个线程打印完毕后下一个线程才可以获得锁去打印数据,证明ReentranLock具有加锁的功能。

ReentrantLock持有的是对象监视器:

【缺少的图片】

ReentrantLock持有的是对象监视器,但是ReentrantLock和synchronized持有的对象监视器是不同的。

 

Tips:

1、ReentrantLock持有的锁是需要主动去unlock()的

2、Condition:synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待/通知模型,ReentranLock借助Condition可以,另外Condition有更好的灵活性:

  a、一个Lock里面可以创建多个Condition实例,实现多路通知;

  b、notify()方法进行通知时,被通知的线程是Java虚拟机随机选择的,但是 ReentrantLock+Condition 可以实现有选择性地通知。

ReentrantLock

标签:image   com   syn   选择   用法   java虚拟机   利用   基本   监视   

原文地址:https://www.cnblogs.com/yourGod/p/9132623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!