-
synchronized和volatile的比较查看全部
-
Volatile适用场合查看全部
-
共享变量线程间不可见原因查看全部
-
线程互斥过程查看全部
-
实现可见性必要2点查看全部
-
原子性 X(交叉执行) X(命令重排序) 可见性 X(没有及时所工作内存中的变量与主内存中的变量同步)查看全部
-
as-if-serial in single thread condition!查看全部
-
数据的依赖才能构成对重排序的限制。查看全部
-
right example查看全部
-
通过对线程启动顺序控制宏观上也就相当于单线程了。查看全部
-
synchronized 是一个保证。查看全部
-
单线程中重排序对程序结果无影响。多线程可能就会有很大影响。查看全部
-
导致共享变量在线程间不可见的原因: 1.线程的交叉执行。 2.重排序结合线程交叉执行 3.共享变量更新后的值没有在工作内存与主内存间及时更新。查看全部
-
线程获得互斥代码的过程: 1.获得互斥锁----2.清空工作内存----3.从主存拷贝变量的最新副本到工作内存中。----4.执行代码 。----5.将更改后的共享变量值更新到主内存中。------6.释放锁。查看全部
-
synchronized:加锁,性能开销较大,保证可见性,保证原子性 volatile:效率高,不加锁,非阻塞,可见性,不保证原子性,读相当于加锁,写相当于解锁查看全部
举报
0/150
提交
取消