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

并发(二)

时间:2017-07-10 22:06:59      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:可见性   实现   nbsp   xxx   并发   资源问题   访问   顺序   冲突   

共享资源问题

多个线程访问同一个资源时,其顺序不能保证,可能会造成错误。可以用sycronized关键字锁住某个对象,保证其访问是异步的。

另一个方案是用lock。

区别:

sycronized是悲观锁,阻塞等待,lock可以搞乐观锁,尝试冲突重试

sycronized死等抱柱信,lock可以设置响应中断

sycronized控制临界资源与await和notify管理有序对应的对象是同一个,lock用newCondition的方式实现了分离,控制更精确。

 

原子性,可见性,有序性。

volatile保证可见性,通过禁用指令重排保证有序性,但不保证原子性。

syncronized和lock以及AtomicXXX可以保证原子性。

 

并发(二)

标签:可见性   实现   nbsp   xxx   并发   资源问题   访问   顺序   冲突   

原文地址:http://www.cnblogs.com/jianxiafeipeng/p/7147504.html

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