作用
控制线程执行顺序。比如,我让子线程先执行,完成之后,才执行主线程。
自己实现
自己可以实现一个计数器,线程计数器。就是每个线程执行完成的时候,就减1。直到为0,子线程都执行完毕,然后就开始执行主线程。
jdk-并发包
提供了CountDownLatch,作用和上面的一样。无非是jdk实现的东西,更好,更好用(你只需要调用方法,不需要实现细节)和更安全。因为毕竟是全世界的人在使用。
代码
伪代码
子线程(){
业务;
CountDownLatch-1; //每次减1,直到为0。如果为0,就唤醒主线程。
}
CountDownLatch.wait(); //主线程阻塞,等待被唤醒
真实代码
参考
https://mp.weixin.qq.com/s?src=11×tamp=1575210458&ver=2008&signature=TK0FrvLBDMYYpJCfVsPioJAQu*QWM8zm9HWiPYAQCdKnbwcGkqLaEGH4oUYZV-RRENZjyAPX6WAF71jWv9mHRFbHjPK*whZAsIQdRvNNbI5g5w61Bs9j02aJ-steZ9TH&new=1