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

显示锁(ReentranLock)

时间:2017-05-06 14:12:38      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:线程   定义   操作   try   解锁   nbsp   加锁   启动   语义   

1. Lock接口:定义了一组抽象的加锁操作,提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁的方法都是显示的。

2. ReentrantLock锁:实现了Lock接口,并提供了与synchronized相同的互斥性和内存可见性,也提供了可重入的加锁语义。finally后需要调用unlock,一旦忘记,则会埋下一颗定时炸弹。

(1)目的:内置锁无法中断一个等待获取锁的线程,或者无法在请求一个锁时无限地等待下去。

(2)轮询锁与定时锁:此类锁的获取模式是由tryLock方法实现的,具有更完善的错误恢复机制。

内置锁中,死锁是一个很严重的问题,恢复程序的唯一办法是重新启动程序,而防止死锁的唯一办法是在构造程序时避免出现不一致的锁顺序;内置锁很难实现带有时间限制的操作。

而可定时与可轮询的锁提供了:避免死锁的发生。

(3)可中断的锁和非快结构的加锁

 

显示锁(ReentranLock)

标签:线程   定义   操作   try   解锁   nbsp   加锁   启动   语义   

原文地址:http://www.cnblogs.com/changna1314/p/6816492.html

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