使用场景
在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束,这时,如果主线程向等待子线程执行完成后再结束,就需要用到join()方法了。
join()的作用是等待线程对象销毁。
方法join具有使线程排队运行的作用,有些类似同步的运行效果。join与synchronized的区别是:join在内部使用了wait()方法进行等待,而synchronized关键字使用的是“对象监视器”原理作为同步。
方法join与异常
在join方法执行过程中,如果当前线程对象被中断interrupt(),则当前线程会出现异常:java.lang.InterruptedException
方法join(long)的使用
方法join(long)中的参数是设定等待的时间。
join(2000)和sleep(2000)的区别
主要体现在对同步的处理上。
方法join(long)的功能在内部是使用wait(long)方法来实现的,所以join(long)方法具有释放锁的特点。而方法Thread.sleep(lo