你的Java并发程序Bug,100%是这几个原因造成的
发布时间:2019-10-31 12:28:34 所属栏目:建站 来源:平头哥
导读:可见性题目 可见性是指一个线程对共享变量举办了修改,其他线程可以或许立马看到该共享变量更新后的值,这视乎是一个合情公道的要求,可是在多线程的环境下,也许就要让你扫兴了,因为每个 CPU 都有本身的缓存,每个线程行使的也许是差异的 CPU ,这就会呈现数
线程1 地址的 CPU 执行完前两条指令后,执行权被 线程2 地址的 CPU 抢占了,这时辰线程1 地址的 CPU 执行挂起守候再次获取执行权,线程2 地址的 CPU 获取到执行权之后,先从内存中读取 count,此时内存中的 count 照旧 1,线程2 地址的 CPU 刚好执行完了这三条指令,线程2 执行完之后内存中的 count 就便是 2 了,这时辰线程1 再次获取了执行权,这时辰线程1 只剩下最后一条将 count 写回内存的呼吁,执行完之后,内存中的 count 的置魅照旧 2 ,并不是我们估量的 3。 有序性题目 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |