主线程等待所有线程执行结束再继续执行
public class TestCountDownLatch {
static int loopCount = 10;
static CountDownLatch latch = new CountDownLatch(loopCount);
static class Hello implements Runnable{
private int i;
private Hello(int i){
this.i = i;
}
@Override
public void run() {
System.out.println("hello i = "+i);
latch.countDown();
}
}
public static void main(String[] args) throws Exception {
for(int i = 0; i < loopCount; i++){
new Thread(new Hello(i)).start();
}
latch.await();
System.out.println("main finish");
}
}
var wg sync.WaitGroup
func hello(i int) {
defer wg.Done()
fmt.Println("hello i = ", i)
}
func main() {
loopCount := 10
wg.Add(loopCount)
for i := 0; i < loopCount; i++ {
go hello(i)
}
wg.Wait()
fmt.Println("main finish")
}