java 多线程 CountDownLatch
package thread; import java.util.concurrent.CountDownLatch; /** * 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次 * CountDownLatch实现更方便 所以主子线程问题 第一时间要想到这个解决方案 */ public class Thread5Test { private static CountDownLatch countDownLatch = new CountDownLatch(1); private static class ThreadMain extends Thread { ThreadChild threadChild = new ThreadChild(); @Override public void run() { try { threadChild.start(); for (int i = 1; i <= 50; i++) { countDownLatch.await(); for (int j = 0; j < 100; j++) { System.out.println(j + 1 + "--主线程" + i); } countDownLatch = new CountDownLatch(1); } } catch (InterruptedException e) { //do something } } } private static class ThreadChild extends Thread { @Override public void run() { while (true) { for (int i = 0; i < 10; i++) { System.out.println(i + 1 + "--子线程"); } countDownLatch.countDown(); } } } public static void main(String[] args) { try { ThreadMain threadMain = new ThreadMain(); threadMain.start(); } catch (Exception e) { e.printStackTrace(); } } }