join,是加入的意思
相对于线程来说,有两个意思,
第一是抢夺线程CPU执行权,而这是相对于调用这个方法的线程来说的
第二是等待线程终止,这是相对于被占用执行权的线程来说的
如:在主线程中执行一个A线程的join()方法,那么在join()执行之后,主线程将会进入冻结状态,直到A线程执行完毕,主线程都会继续执行
如果A线程在执行过程中wait(),sleep()了进入了冻结状态,或者A线程挂了,那么主线程将会继续冻结等待,因为还还在等待A线程执行呢.
如下代码演示:
- public class ThreadDemo
- {
- public static void main(String[] args)
- {
- Thread A = new Thread();
- A.start();
- try
- {
- //对A线程来说,是抢夺执行权,对主线程来说是等待A线程终止。
- //如果A线程没有执行完毕,主线程将会处于冻结状态,
- A.join();
- }
- //
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
- }
- //
复制代码
|
|