zoukankan      html  css  js  c++  java
  • 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的会有帮助
     
     
     
  • 相关阅读:
    Service
    adb server is out of date
    Notification.Builder
    eclipse连接小米2调试程序的问题
    Date类
    this指向冒泡排序二分查找
    Dom事件键盘事件
    Dom事件键盘事件
    12.4Dom事件键盘事件
    事件对象
  • 原文地址:https://www.cnblogs.com/tonychai/p/4586764.html
Copyright © 2011-2022 走看看