Java高并发编程(三):Java内存模型

1. 并发编程模型的两个关键问题

        并发编程中需要处理两个关键问题:线程之间如何通信和线程之间如何同步。通信是指线程之间以何种机制进行交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。
        共享内存的并发模型中,线程之间共享公共状态,通过写 - 读内存中的公共状态进行隐式通信。在消息传递的并发模型中,线程之间没有公共状态,线程之间必须通过发送消息来显式通信。
        同步是指程序中用于控制不同线程间操作发生相对顺序的机制。共享内存模型中,同步是显式进行的,例如使用 synchronized 这种显式的方法来制定线程之间的互斥操作。消息传递模型中,消息的发送必须在消息的接收之前,所以同步是隐式进行的。
        Java 的并发采用的是共享内存模型。Java 线程之间通信都是隐式进行的,整个通信过程对程序员完全透明。所以如果 Java 程序员对这种隐式通信工作机制理解不深入的话,就会遇到很多内存可见性问题。

猜你喜欢

转载自blog.csdn.net/qq_21125183/article/details/80868892
今日推荐