首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java并发编程-互斥锁, 读写锁及条件

2012-10-08 
java并发编程--互斥锁, 读写锁及条件?[coolxing按: 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正.]?

java并发编程--互斥锁, 读写锁及条件

?

[coolxing按: 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正.]?

?

java.util.concurrent.locks包提供了锁和等待条件的接口和类, 可用于替代JDK1.5之前的同步(synchronized)和监视器机制(主要是Object类的wait(), notify(), notifyAll()方法).

?

互斥锁--Lock接口及其实现类ReentrantLock

所谓互斥锁, 指的是一次最多只能有一个线程持有的锁. 在jdk1.5之前, 我们通常使用synchronized机制控制多个线程对共享资源的访问. 而现在, Lock提供了比synchronized机制更广泛的锁定操作, Lock和synchronized机制的主要区别:

synchronized机制提供了对与每个对象相关的隐式监视器锁的访问, 并强制所有锁获取和释放均要出现在一个块结构中,?当获取了多个锁时,?它们必须以相反的顺序释放.?synchronized机制对锁的释放是隐式的, 只要线程运行的代码超出了synchronized语句块范围, 锁就会被释放. 而Lock机制必须显式的调用Lock对象的unlock()方法才能释放锁, 这为获取锁和释放锁不出现在同一个块结构中, 以及以更自由的顺序释放锁提供了可能.?以下代码演示了在不同的块结构中获取和释放锁:

不管程序运行多久, 也不会有人妖的出现.

热点排行