首页 > 其他 > 详细

volitail关键字

时间:2020-06-23 01:25:09      阅读:243      评论:0      收藏:0      [点我收藏+]

一、volitail起到什么作用

  1.可变的,跟踪变量的变化,保证线程的可见性.

    1.1堆内存是所有线程共享的内存,每个线程都有自己专属的工作内存,当某一线程要访问某一个值的时候,都会copy一份到自己的空间,单线程要改变这个值的时候首先会对自己空间里的值进行改变,

      什么时候写回堆的时候不好控制.其他线程也不好控制堆内存的值是否改变.这时用到volitail可以让各个线程共享到这个值的改变.

    1.2volitail的本质是用了MESI(CPU的缓存一致性协议)

  2.禁止指令重排序.

    1.老的cpu架构是并行执行,新的cpu是并发的执行,如果想用新的架构特性就需要compiler(编译器)对执行代码进行重新排序,

      例: a =1 ; b = 2 ; a =4 ;  可能会重排序成 a=4 ;b =2; a =1;

    2.单例模式 double check

      单例模式懒汉式要加sync关键字才能保证线程安全.如果获取对象的代码块里掺杂了业务在里面,锁整个代码块会降低效率,这是锁要夹在创建对象那块.

      

volitail关键字

原文:https://www.cnblogs.com/chen-xing-Eli/p/13179842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!