考虑以下代码:
class ThreadJoinTest{
public static void main(String[] arguments){
TimeUnit unit;
final Thread taskThread = new Thread(task);
taskThread.start();
taskThread.join(unit.millis(timeout));
}
}
那么当主线程执行taskThread.join()
带有超时值的行时,主线程是否有taskThread
足够的时间来完成它的任务?这是 join 方法的主要目标吗?
如果出现以下情况会发生什么:
taskThread
在超时期限之前完成它的执行?- 如果达到超时但
taskThread
尚未完成执行会怎样?是否taskThread
有机会完成其任务? - 主线程如何知道由于
taskThread
正常完成或达到超时而返回连接?