网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么在java中实现线程通信

本篇文章给大家分享的是有关怎么在java中实现线程通信,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联公司主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、自适应网站建设、程序开发、网站优化、微网站、微信小程序等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的做网站、网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

一、线程通信目的

为了更好的协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知。

二、线程通信方法

1.join

一个线程等待另一个线程执行完毕后再执行。join其实合理理解成是线程合并,当在一个线程调用另一个线程的join方法时,当前线程阻塞等待被调用join方法的线程执行完毕才能继续执行,所以join的好处能够保证线程的执行顺序,但是如果调用线程的join方法其实已经失去了并行的意义,虽然存在多个线程,但是本质上还是串行的,最后join的实现其实是基于等待通知机制的。

2.wait/notify

在一个线程内调用该线程锁对象的wait方法,线程将进入等待队列进行等待直到被通知或者被唤醒。

3.CountdownLatch

一个线程等待(countDownLatch.await())其他任意个数的线程执行完毕后(countDownLatch.countDown())再执行

4.CyclicBarrier

所有线程先各自准备,当所有线程都准备完毕(全部都调用了cyclicBarrier.await())后统一开始执行后续操作

5.Semaphore

可以控制同时访问的线程个数,通过acquire()获取一个许可,如果没有就等待,而release()释放一个许可

6.Callable

子线程将执行结果返回给父线程

FutureTask futureTask = new FutureTask<>(callable);
new Thread(futureTask).start();
Object result = futureTask.get();

(1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:

(2)CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行;

(3)CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;

(4)另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。

(5)Semaphore其实和锁有点类似,它一般用于控制对某组资源的访问权限。

以上就是怎么在java中实现线程通信,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


分享名称:怎么在java中实现线程通信
新闻来源:http://bjjierui.cn/article/igsdop.html

其他资讯