首页 > 代码库 > 并发(二)
并发(二)
共享资源问题
多个线程访问同一个资源时,其顺序不能保证,可能会造成错误。可以用sycronized关键字锁住某个对象,保证其访问是异步的。
另一个方案是用lock。
区别:
sycronized是悲观锁,阻塞等待,lock可以搞乐观锁,尝试冲突重试
sycronized死等抱柱信,lock可以设置响应中断
sycronized控制临界资源与await和notify管理有序对应的对象是同一个,lock用newCondition的方式实现了分离,控制更精确。
原子性,可见性,有序性。
volatile保证可见性,通过禁用指令重排保证有序性,但不保证原子性。
syncronized和lock以及AtomicXXX可以保证原子性。
并发(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。