java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程
1.[代碼]CountDownLatch控制主線程等子線程執行完--Java多線程
package com.sihuatech.common;
import java.util.concurrent.CountDownLatch;
/**
* 執行線程
*
* @author lei 2011-7-28
*/
class ImportThread extends Thread {
private CountDownLatch threadsSignal;
public ImportThread(CountDownLatch threadsSignal) {
this.threadsSignal = threadsSignal;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "開始...");
// Do somethings
threadsSignal.countDown();// 線程結束時計數器減1
System.out.println(Thread.currentThread().getName() + "結束. 還有" + threadsSignal.getCount() + " 個線程");
}
}
/**
* 測試方法
*
* @author lei 2011-7-28
*/
public class Test {
public static void main(String[] args) {
int threadNum = 10;
CountDownLatch threadSignal = new CountDownLatch(threadNum);// 初始化countDown
for (int ii = 0; ii < threadNum; ii++) {// 開threadNum個線程
Thread t = new ImportThread(threadSignal);
t.start();
}
try {
threadSignal.await();// 等待所有子線程執行完
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "結束.");
}
}
總結
以上是生活随笔為你收集整理的java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java max sum_杭电1024
- 下一篇: mysql数据库事件不执行_如何查看my