DCL(Double Check Lock)中要加入volatile的原因
DCL(Double Check Lock)中要加入volatile的原因原因:阻止创建对象的过程中发生指令重排序,多线程并发下可能导致的数据误读的问题,虽然几率非常小。什么叫指令重排序?可以当做是计算机为了提升效率的一种优化,假如说有两条指令,一条指令A执行10000条数据的数据修改操作时间很长,指令B执行简单的一条逻辑运算时间很短,此时指令A在指令B前面,没有指令重排序的情况下指令B要等待指令A结束后才能执行,增加了程序执行的等待时间。所以指令重排序就是让指令B排到指令A前面运行。提示:但是程序
原创
2021-10-14 11:46:31 ·
315 阅读 ·
0 评论