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