![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 70
抹茶2077
有效输出,无限进步。
展开
-
【详解】Java内存模型中 happens-before规则
Java内存模型中 happens-before规则 如果一个操作happens-before另一个操作,那么第一个操作的执行结果将对第二个操作课件,并且第一个操作的执行顺序排在第二个操作之前。 两个操作间存在happens-before关系,不意味着Java平台一定按照被该关系制定的顺序执行,如果重排序后不按照该顺序,但结果一致,那么这种重排序合法。 程序顺序规则: 一个线程中,按照程序执行的顺序,前面的操作happens-before于后面的操作。 也就是符合单线程的思维,程序在前面对变量原创 2021-11-14 12:58:53 · 2895 阅读 · 0 评论 -
从CPU层面解释,为什么会有并发问题?
CPU优化导致并发异常的三个问题 CPU增加缓存,均衡与内存间的速度差异(可见性问题): 可见性:一个线程对共享变量的修改,能立刻被其他线程嗅探到。 对于多核设备,每个线程被分配在一个处理器上运行,都有各自的CPU缓存。 又因为同一个进程上的多个线程共享同一块内存空间。 单核理想情况下:线程运算的结果首先进入各自CPU缓存后存入内存,其他线程的CPU缓存嗅探到内存中变量值改变,使自身缓存无效。 但是在并发情况下,多线程同时对共享变量值修改,无法即使刷新入内存,导致实际上运算利用自身C原创 2021-11-13 15:43:02 · 3639 阅读 · 0 评论