摘要: 并发编程的两个问题:缓存导致的不可见,编译优化导致的有序性问题 解决:禁用缓存,禁用编译优化。但是总不能所有程序都禁用吧,这样程序的性能就堪忧了。 Java内存模型:按需禁用缓存,禁用编译优化。 从本质上来讲,Java内存模型规范了JVM如何提供按需禁用缓存和编译优化的方法。具体来说,这些方法包括v 阅读全文
posted @ 2019-10-11 23:13 45°仰望星空 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 一、可见性 是指多线程在不同cpu缓存(多核)中对同一个变量进行修改,导致的不可见 二、原子性 指线程间切换导致的原子性问题 一条编程语句执行往往包含多条CPU指令,操作系统做任务切换,可以发生在任意一条cpu指令执行完 比如count+=1;这条语句包含3条cpu指令: 1.把变量count从内存 阅读全文
posted @ 2019-10-11 00:11 45°仰望星空 阅读(174) 评论(0) 推荐(0) 编辑