java 调用 jion 的方法
见https://www.zhihu.com/people/calabash-man
Java中线程的 join()
方法用于让当前线程等待调用该方法的线程执行完毕后再继续执行。它是一个阻塞方法,调用该方法的线程会一直阻塞,直到被等待的线程执行完毕后才会继续执行。 join()
方法有两个重载形式:
-
join()
:等待被等待线程执行完毕。 -
join(long millis)
:等待被等待线程执行完毕,或者等待一段时间之后继续执行。millis
参数指定等待时间,单位为毫秒。
例如,假设有一个线程 thread
,如果需要让当前线程等待 thread
线程执行完毕后再继续执行,可以使用 join()
方法,示例代码如下:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 线程执行的任务
}
});
// 启动线程
thread.start();
try {
// 等待线程执行完毕
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 当线程执行完毕后,继续执行下面的代码
在上面的示例中,线程 thread
执行完毕后,当前线程才会继续执行下面的代码。如果线程 thread
执行时间很长,可以使用 join(long millis)
方法等待一段时间之后继续执行,例如:
try {
// 等待线程执行 1000 毫秒
thread.join(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
这样,如果线程 thread
在等待时间内执行完毕,当前线程会立即继续执行下面的代码;如果线程 thread
在等待时间内没有执行完毕,当前线程也会继续执行下面的代码。