并发编程基础
cpu多级缓存
-
事件局部性:如果某个数据被访问,那么在不久的将来它很可能被再次访问
-
空间局部性: 如果某个数据被访问,那么与它相邻的数据很快也可能被访问。
* 缓存一致性 (MESI)
local read | local write | remote write | remote read
* 乱序执行优化
处理器为提高运算速度而做出违背代码原有顺序的优化
java内存模型
参考https://blog.csdn.net/takeuherat/article/details/102671644
* 同步八种操作
lock(锁定): 作用于主内存的变量,把一个变量标识为一条线程独占状态
unlock(解锁): 作用于主内存的变量,把一个处于锁定的变量释放出来,释放后的变量才可以被其他线程锁定
read(读取): 作用于主内存的变量,把一个变量值从主内存传输到线程的工作内存中,以便以后的load动作使用
load(载入):作用于工作内存的变量,它把read操作从主内存中得到的变量值放入工作内存的变量副本中
user(使用) :作用于工作内存的变量,把工作内存中的一个变量值传递给执行引擎
assign(赋值):作用于工作内存的变量,它把一个从执行引擎接收到的值赋值给工作内存的变量
store(存储):作用于工作内存的变量,把工作内存中的一个变量的值传送到主内存中 ,以便随后的write的操作
write(写入):作用于主内存的变量,它把store操作从工作内存中一个变量的值传送到主内存的变量中
并发的优势于风险
风险:
1.安全性 2.活跃性 3.性能
优势:
1.速度 2.设计 3.资源利用