![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程
Eric597247
这个作者很懒,什么都没留下…
展开
-
Java并发编程-解决可见性与有序性问题
从可见性与有序性问题的原因着手导致可见性问题的原因是缓存,导致有序性问题的原因是编译优化,那么解决二者的最直接方法就是禁用缓存和编译优化。但是这样程序的性能将会受到很大程度降低。这里较为合理的方案是按需禁用缓存和编译优化。Java内存模型规范了JVM如何提供按需禁用缓存和编译优化的方法。具体包括:volatile、synchronized和final关键字和Happens-Before规则...原创 2019-11-30 15:21:34 · 77 阅读 · 0 评论 -
并发编程的Bug源头:可见性、原子性和有序性问题
学习极客时间上的《Java并发编程实战》课程之余,结合自己的理解整理一部分笔记以巩固知识。并发编程的起源1.硬件设备发展的核心矛盾:CPU、内存、I/O设备三者间存在的速度差异。根据木桶原理,程序整体性能最终受制于速度最慢的I/O设备。 2.为了平和三者速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为: (1)CPU增加了缓存,以均衡与内存的速度差异; (2)操作...原创 2019-11-30 15:13:23 · 144 阅读 · 0 评论