从并发的角度来看JVM的内存模型JMM(java memory model)
传统意义上的JVM内存模型就是分为5个部分,方法区,本地方法区,栈,堆,计数器。
从多线程的角度来看,
JVM被分为线程私有区域和线程共享区域
通过上面这两张图整合理解,线程的私有区域虚拟机栈,本地方法区,和程序计数器,内存共享区域主要为方法区、和堆。
多线程之间的通信:
多线程的共享机制有两种一种是消息传递,一种是共享内存。
- 消息传递主要是通过wait() notify() 两个方法来传递消息
- 数据的传递只能通过共享内存模块来解决。
当然通过共享内存模块会引发线程安全问题这就要通过锁和并发关键字去解决了在其他模块会讲到。