Please enable JavaScript.
Coggle requires JavaScript to display documents.
Java 并发 (分工 (Excutor/ 线程池, Fork/Join, Future, Guarded Suspension 模式,…
Java 并发
-
-
并发源头问题
可见性
多核 CPU 寄存器和内存缓存存在一致性问题。一个线程对一个共享变量的修改,另一个线程能够立即看到,这称之为可见性。解决手段
- 禁用 CPU 缓存,使用 volatile 关键字
Happens-before 规则
指前一个操作的结果对后续操作可见。
volatile 关键字修饰的变量的写操作 happens-before 于对这个变量的读操作。happens-before 符合传递性规则。
有序性
程序执行的顺序是有序的,编译器优化可能带来有序性问题。解决手段
原子性
一个或多个操作在 CPU 执行的过程中不被中断的特性称为原子性。解决手段
-