java并发编程
文章平均质量分 66
mz314
这个作者很懒,什么都没留下…
展开
-
Lock和synchronized的区别
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在等待了足够长的时间以后,中断等待,而干别的转载 2017-02-06 22:21:57 · 246 阅读 · 0 评论 -
JAVA中的Volatile关键字
有时候仅仅只是读取一两个实例域就使用同步未免显得开销过大,此时,Volatile关键字的作用就出来了! Brian Goetz 给出过这样的“同步格言”:“如果向一个变量写入值,而这个变量接下来可能会被另一个线程读取,或者,从一个变量读取值,而这个变量可能是之前被另一个线程写入的,此时必须使用同步!”。 Volatile关键字为实例域提供了一种免锁机制。 假如有一个布尔变量,它的值被一个变量原创 2017-02-07 14:46:39 · 242 阅读 · 0 评论