多线程之线程间的通信

Posted IT编程之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程之线程间的通信相关的知识,希望对你有一定的参考价值。

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

线程之间的通信实现方式有多种,本篇介绍一下不使用等待/通知机制实现线程间通信。创建项目实现,在程序中使用sleep()结合while(true)死循环法来实现多个线程之间的通讯,代码如下:

创建MyList.java类

线程类ThreadA.java

多线程之线程间的通信

线程类ThreadB.java

多线程之线程间的通信

运行类Run.java

多线程之线程间的通信

运行结果:

运行结果来看两个线程之间实现了通信,但有一个弊端就是,线程ThreadB.java不停地通过while语句轮询机制来检测某一个条件,这样会浪费cpu资源。如果轮询的时间间隔很小,更浪费cpu资源;如果轮询的时间间隔很大,有可能会取不到想要的数据。所以就需要有一种机制来实现减少cpu的资源浪费,而且还可以实现在多个线程间通信,它就是“wait/notify”机制。下一篇“等待/通知机制”时,重点介绍的就是“wait/notify”机制。


大家在学习过程中遇到过什么问题也欢迎在留言区盖楼讨论!

更多精彩推荐,请关注我们

以上是关于多线程之线程间的通信的主要内容,如果未能解决你的问题,请参考以下文章

多线程线程间的通信和协作

Java多线程之内存模型

iOS开发多线程篇—线程间的通信

Java 多线程线程间的通信

多线程-线程间的通信

多线程-线程间的通信