當前位置:編程學習大全網 - 網站源碼 - main線程結束,子線程為什麽沒有退出

main線程結束,子線程為什麽沒有退出

要實現這個情況,必須知道以下幾點

1、java中線程的結束是由run方法運行完成後自動結束的

2、在main線程(主線程)中,需要得到所有線程的引用。

3、知道jdk提供的CountDownLatch的用法

例子如下:

public static void main(String[] args) throws InterruptedException

{

//CountDownLatch作為計數器紀錄有幾個線程,例如有2個線程

CountDownLatch latch=new CountDownLatch(2);

Worker worker1=new Worker( latch);

Worker worker2=new Worker(latch);

worker1.start();// 啟動線程

worker2.start();//

//等待所有工人完成工作

latch.await();

System.out.println("all work done at "+sdf.format(new Date()));

}

class Worker extends Thread

{

private CountDownLatch latch;

public Worker(CountDownLatch latch)

{

this.latch = latch;

}

public void run()

{

xxxxx

//在run方法結束之前,講線程計數器減壹

latch.countDown();

}

}

  • 上一篇:php如何把多個if判斷代碼簡寫的更精煉
  • 下一篇:循環記錄源代碼
  • copyright 2024編程學習大全網