并发编程之线程通信

一、Java内存模型概念

 线程通信

 消息传递

 重排序

 顺序一致性

 Happens-Before

 As-If-Serial

二、线程之间的通信

 并发种的两个关键问题:线程之间的通信和同步。

1.两种线程之间的通信机制

 共享内存:线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。例:共享对象。

 消息传递:线程之间没有公共状态,线程之间通过发送消息来显式进行通信。例:wait()和notify()。

2.Java的并发采用共享内存模型 

三、Java内存模型(jmm)

 1.多核并发缓存架构

  

2.java线程的内存模型

  

3.jmm数据原子操作

  

4.jmm缓存不一致问题

 1)解决方案

  

 2)具体流程

  

四、Volatile可见性底层实现原理

 1.volatile缓存可见性实现原理

   

 2.lock和unlock,锁粒度小,效率高。

原文地址:https://www.cnblogs.com/wenxiangchen/p/10956539.html