在多线程开发中,常常遇到希望一组线程完成之后在执行之后的操作,java提供了一个多线程同步辅助类,可以完成此类需求:类中常见的方法:其中构造方法:CountDownLatch(int count) 参数count是计数器,一般用要执行线程的
在多线程开发中,常常遇到希望一组线程完成之后在执行之后的操作,java提供了一个多线程同步辅助类,可以完成此类需求:
类中常见的方法:
其中构造方法:
CountDownLatch(int count) 参数count是计数器,一般用要执行线程的数量来赋值。
long getCount():获得当前计数器的值。
void countDown():当计数器的值大于零时,调用方法,计数器的数值减少1,当计数器等数零时,释放所有的线程。
void await():调所该方法阻塞当前主线程,直到计数器减少为零。
代码例子:
线程类:
import java.util.concurrent.CountDownLatch;public class TestThread extends Thread{CountDownLatch cd;String threadName;public TestThread(CountDownLatch cd,String threadName){ this.cd=cd; this.threadName=threadName;}@Overridepublic void run() { System.out.println(threadName+" start working..."); dowork(); System.out.println(threadName+" end working and exit..."); cd.countDown();//告诉同步类完成一个线程操作完成}private void dowork(){ try { Thread.sleep(2000); System.out.println(threadName+" is working..."); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }}}
--结束END--
本文标题: Java中多线程同步类 CountDownLatch
本文链接: https://www.lsjlt.com/news/226578.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-09
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0