join用于让当前线程等待join线程执行结束,其原理是不停检查join线程是否存活,如果join线程存活则让当前线程永远wait。
调用thread.join() 方法必须等thread 执行完毕,当前线程才能继续往下执行。
而CountDownLatch通过计数器提供了更灵活的控制,countDownLatch这个线程,只要检测到计数器(count)为0,不管被等待线程是否执行结束,等待线程都可以继续执行(被唤醒,进入可执行状态)。
join用于让当前线程等待join线程执行结束,其原理是不停检查join线程是否存活,如果join线程存活则让当前线程永远wait。
调用thread.join() 方法必须等thread 执行完毕,当前线程才能继续往下执行。
而CountDownLatch通过计数器提供了更灵活的控制,countDownLatch这个线程,只要检测到计数器(count)为0,不管被等待线程是否执行结束,等待线程都可以继续执行(被唤醒,进入可执行状态)。