线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效的把控与监督。

在本章中需要着重掌握的技术点如下:

  • 使用wait/notify实现线程间的通信
  • 生产者/消费者模式的实现

1.等待 / 通知机制

通过本节可以学习到,线程与线程之间不是独立的个体,它们彼此之间可以互相通信和协作。

1.1 不使用等待 / 通知机制实现线程间通信

下面的示例,是sleep()结合while(true)死循环来实现多个线程间通信。

public class MyService {    volatile private List<Integer> list = n
收藏 打印