zoukankan      html  css  js  c++  java
  • java中主线程等待所有子线程结束

    今天有一个需求是:在一个方法中开启了一个子线程来执行操作,返回值依赖于子线程的执行结果,这样如果要返回正确的值,就需要开启子线程后

    主线程等待子线程,然后子线程执行结束后,主线程再继续执行。

    主线程等待子线程需要用到:CountDownLatch

    直接上代码:

    public boolean isUpdateResource() {
    		
    		
    		CountDownLatch cdl=new CountDownLatch(1);//这里的数字,开启几个线程就写几 
    		
    				
    			new MyThread(cdl).start();	
    				
    		
    		try {
    			cdl.await();//主线程等待子线程执行
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		if(result!="0"){
    			isUpdateResource=true;
    			resurseUrl=result;
    		}
    		
    		return isUpdateResource;
    	}
    

     创建一个Thread类

    public class MyThread extends Thread{
    	private CountDownLatch cdl;
    	public MyThread(CountDownLatch cdl){
    		this.cdl=cdl;
    	}
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    		super.run();
    			
    		result = connectServer(serverUrl);
    			
    		cdl.countDown();
    	}
    }
    

     这样就实现了,主线程等待子线程结束后再执行。

  • 相关阅读:
    知识积累
    来西安对吗
    python循环语句---------while、for
    postman接口功能测试
    Laravel环境搭建
    Vue
    搭建Vue.js环境
    Atom
    PHP
    thinkphp-无限分类下根据任意部门获取顶级部门ID
  • 原文地址:https://www.cnblogs.com/all88/p/3026373.html
Copyright © 2011-2022 走看看