0、JMM
#JMM
##计算机物理架构图
该图为计算机物理架构图。
多线程带来的问题:线程之间通信问题?缓存一致问题?
解决方案:1、BUS总线锁,锁总线,效率低
2、MESI(缓存一致性)协议
##JMM
###什么是JMM
JMM是一种规范,屏蔽了程序访问硬件和操作系统的差异,实现了Java的跨平台性。
目的是解决多线程通过共享内存(主内存)通信时,存在的原子性、可见性、有序性的问题。
###并发编程的3个概念
原子性:类似事务。一个操作或多个操作,要么全部执行成功,要么全部执行失败
可见性:线程访问共享变量,会在线程内部的工作区load一份数据副本,多个线程访问该数据的时候,保持数 据的一致性。
有序性:程序执行的顺序和代码的顺序是不一样的。(CPU执行代码–>编译的class文件–>jvm转译–>汇编指令)CPU会划分多个时间片,为了优化CPU的性能,CPU会对指令进行重排序。编译优化,指令重排
###内存同步过程