Java多线程编程(三)线程间通信

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

  一、等待/通知机制

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

  示例:线程A向数组中增加元素,线程B不断查询数组中元素个数,在元素个数等于1时发生异常并停止。虽然两个线程实现了通信,但有一个弊端就是,线程B不停地通过while语句轮询机制来检测某一个条件,这样会浪费CPU资源。如果轮询的时间间隔很小,更浪费CPU资源;如果轮询的时间间隔很大,有可能会取不到想要得到的数据。所以就需要有一种机制来减少CPU资源的浪费,而且还可以实现在多个线程间通信,它就是“wait/notify”机制。

package mylist; import java.util.ArrayList; import java.util.List; public class MyList { private List<Integer> list = new ArrayList<Integer>(); public void add() { list.add(1); } public int size() { return list.size(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdjxd.html