zoukankan      html  css  js  c++  java
  • 编写多线程代码时,启动线程后等待线程结束方法

    在编写多线程代码时,如果主线程结束,那么子线程也会随之结束,如何等待线程结束再往下执行。

     

    等待线程执行完成代码。

     

    线程代码:

     

    package demo;

    import java.util.concurrent.CountDownLatch;

    public class NodeSqlThread1 implements Runnable{
       
        private CountDownLatch cdlSync;
       
        public NodeSqlThread1(CountDownLatch cdlSync){
            this.cdlSync=cdlSync;
        }
       

        @Override
        public void run() {
            for(int i=0;i<100;i++){
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            cdlSync.countDown();
        }
       
       
    }

     

    package demo;

    import java.util.concurrent.CountDownLatch;

    import com.hotent.BaseTestCase;

    public class NodeSqlTest1 extends BaseTestCase {

        static CountDownLatch cdlSync=new CountDownLatch(10);
       
        @org.junit.Test
        public void test() throws InterruptedException{
            NodeSqlThread1 t =new NodeSqlThread1(cdlSync);
            for(int i =0;i< 10;i++){
                new Thread(t).start();
            }
            cdlSync.await();
            System.out.println(cdlSync.getCount()+"完成");
        }

    }

    最重要的是  cdlSync.await(); 它会等待所有线程结束后继续往下执行。

  • 相关阅读:
    3294 [SCOI2016]背单词
    P4551 最长异或路径
    BZOJ 4260: Codechef REBXOR
    P2322 [HNOI2006]最短母串问题
    P2444 [POI2000]病毒
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    BZOJ 3942: [Usaco2015 Feb]Censoring
    EZOJ #77
    EZOJ #73
    547D Mike and Fish
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/4672389.html
Copyright © 2011-2022 走看看