线程通信的定义
线程是程序中独立的个体,但这些个体如果不经过处理就不能成为一个整体。线程间的通信就是使它们成为整体的方案之一。
可以说通过线程通信,线程之间的交互性会更强大,能够大大提高CPU的复用率,同时也可以对线程任务进行有效的把控和监督
轮询实现
import lombok.SneakyThrows;
import java.util.ArrayList;
import java.util.List;
/**
* 模拟厨师与服务员上菜
* @author layman
* @date 2021/2/7
*/
public class Demo10 {
public static void main(String[] args) {
Cook cook = new Cook();
WaiterA threadA = new WaiterA(cook);
threadA.start();
WaiterB threadB = new WaiterB(cook);
threadB.start();
}
}
class Cook {
//强制线程从公共堆栈获取数据
public volatile List<Integer> meal = new ArrayList();
public void add() throws InterruptedException {
for (int i = 1; i < 8 ; i++) {
meal.add(i);
System.out.println("第 "+i+<