线程通信的方式
线程中通信是指多个线程之间通过某种机制进行协调和交互
线程通信主要可以分为三种方式,分别为共享内存、消息传递和管道流。每种方式有不同的方法来实现
volatile共享内存
- 共享内存:线程之间共享程序的公共状态,线程之间通过读-写内存中的公共状态来隐式通信。
wait/notify等待通知方式
- 消息传递:线程之间没有公共的状态,线程之间必须通过明确的发送信息来显示的进行通信。
join方式
管道输入/输出流的形式
- 管道流
共享内存
/**
* @Author: Simon Lang
* @Date: 2020/5/5 15:13
*/
public class TestVolatile {
private static volatile boolean flag=true;
public static void main(String[] args){
new Thread(new Runnable() {
public void run() {
while (true){
if(flag){
System.out.println("线程A");
flag=false;
}
}
}
}).start();
new Thread(new Runnable() {
public void run() {
while (true){
if(!flag){
System.out.println("线程B");
flag=true;
}
}
}
}).start();
}
}
测试结果:线程A和线程B交替执行