CountDownLatchを使用してスレッドの同時実行コードをシミュレートします。サンプルコードは次のとおりです。
パッケージcom.gaopeng.multithread; import java.util.concurrent.CountDownLatch; / ** * CountDownLatchを使用してスレッドの同時実行コードをシミュレート * * @author gaopeng * * / public class CountDownLatchConTest { // 並行番号 private static final int THREAD_NUM = 10 ; private static volatile CountDownLatch countDownLatch = new CountDownLatch(THREAD_NUM); public static void main(String [] args)throws InterruptedException { for(int i = 0; i <THREAD_NUM; I ++ ){ スレッドスレッド = 新しいスレッド(新しいRunnableを(){ @Override 公共 のボイドの実行(){ // 所有的线程在这里等待 してみてください{ countDownLatch.await(); System.out.printlnは(にThread.currentThread() + "=" + System.currentTimeMillis()); } catch (InterruptedException e){ e.printStackTrace(); } } }); thread.start(); // 開始後、カウントダウンカウンターが1つ減少し、スレッドが countDownLatch.countDown(); } } }の準備ができていることを示します
結果は次のとおりです。
スレッド[スレッド-2,5、メイン] = 1587356721613
スレッド[スレッド-1,5、メイン] = 1587356721613
スレッド[スレッド-8,5 、メイン] = 1587356721613
スレッド[スレッド-3,5 、メイン] = 1587356721613
スレッド[ Thread-7,5、main] = 1587356721613
Thread [Thread-6,5、main] = 1587356721613
Thread [Thread-5,5、main] = 1587356721613
Thread [Thread-0,5、main] = 1587356721613
Thread [Thread- 4,5、main] = 1587356721613
スレッド[スレッド-9,5 、main] = 1587356721613