Java实现等待所有子线程结束后再执行一段代码的方法
程序员文章站
2024-02-25 19:43:15
本文实例讲述了java实现等待所有子线程结束后再执行一段代码的方法。分享给大家供大家参考,具体如下:
今天有一个需求是:在一个方法中开启了一个子线程来执行操作,返回值依赖...
本文实例讲述了java实现等待所有子线程结束后再执行一段代码的方法。分享给大家供大家参考,具体如下:
今天有一个需求是:在一个方法中开启了一个子线程来执行操作,返回值依赖于子线程的执行结果,这样如果要返回正确的值,就需要开启子线程后
主线程等待子线程,然后子线程执行结束后,主线程再继续执行。
主线程等待子线程需要用到:countdownlatch
代码如下:
import java.util.concurrent.countdownlatch; public class counter { public static int count = 0; static countdownlatch cdl=new countdownlatch(1000);//这里的数字,开启几个线程就写几 public synchronized static void inc() throws interruptedexception{//注意,如果不加上synchronized,由于并发写入,结果会小于1000 thread.sleep(1); count++; cdl.countdown(); } public static void main(string[] args) throws interruptedexception{ for(int i = 0; i < 1000; i++){ new thread(new runnable(){ public void run() { // todo auto-generated method stub try { counter.inc(); } catch (interruptedexception e) { // todo auto-generated catch block e.printstacktrace(); } } } ).start(); } cdl.await();//主线程等待子线程执行输出 system.out.println(count); } }
更多java相关内容感兴趣的读者可查看本站专题:《java数据结构与算法教程》、《java操作dom节点技巧总结》、《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。