volatile不是原子量
yining<ianynchen@qq.com> 下午 11:43:02
 
volatile使用的是内存屏障
yining<ianynchen@qq.com> 下午 11:43:20
 
只能保证在一个线程写,多个线程读的情况下的一致性
yining<ianynchen@qq.com> 下午 11:43:44
 
真正的原子量应该是用的自旋锁
yining<ianynchen@qq.com> 下午 11:44:14
 
自旋锁没有到内核态的转换,所以还算比较快。mutex就是要转内核态了
 
volatile 会在 CAS 下存在安全问题
但是如果只有一个线程写,多个线程读,就不会有事请
 
所以disruptor推荐的模式就是一个producer,多个consumer。实际上就是一个写,多个读,这样可以利用volatile把性能最大化
 
你把生产看成是上一级的输出+本级输入,消费看成是逻辑处理,那么实际上就是一段子程序啊
 
慢慢来,有时候换个角度,比如去看C/C++的多线程的东西,对理解java的会有帮助
 
 
 
posted @ 2015-06-18 18:53  TonyChai  阅读(118)  评论(0编辑  收藏  举报