Java线程——Java内存模型理解(一)
随笔目录
- Java内存模型定义
- 并发编程线程通信与同步
Java内存模型定义
- 定义:Java内存模型(JMM)是一个规范,主要规定了以下两点
- 规定了一个线程如何以及何时可以看到其他线程修改过后的共享数据,即线程之间共享变量的可见性
- 规定了如何在需要的时候对共享变量进行同步
并发编程线程通信与同步
- 定义:线程通信是指线程之间以何种机制来交换信息,在命令式的编程中,线程之间的通信机制有两种:共享内存和消息传递。
- 共享内存
- 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过读-写内存中的公告状态来隐式进行通信。典型的共享内存通信方式就是通过共享对象进行通讯。
- 在共享内存的并发模型里,同步是显示进行的,程序员必须显示指定某个方法或者某段代码需要在线程之间互斥进行
- 消息传递
- 在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显示进行通信,在java中典型的消息传递方式就是wait()和notify()。
- 在消息传递的并发模型里,由于消息的发送必须咋消息接收之前,因此同步是隐式进行的。