当我们在主程序中某一段代码块中新建了一个线程,而且,这个线程的处理结果直接影响到下面代码的执行结果,总所周知,线程之间是异步执行的,我们无法控制主线程和新建子线程之间的执行顺序,故而我们需要找一个可以让多线程之间实现同步执行的一种方式,在JAVA中我们有了Join方法,该方法使得子线程能够一直保持执行或者是在限定的时间内始终让该子线程执行,超过时间后,再是异步执行。
由该方法可以设计一个简单的计时器程序,改程序可以控制某段代码的执行时间,也就是常说的超时设计。具体代码如下:
//超时线程
public class TimeoutThread extends Thread {
public void run() {
try {
//需要及时处理的代码区域
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
//主线程中代码
TimeoutThread task = new TimeoutThread();
task.start();
try {
task.join(TimeOut);//最大超时时间
} catch (InterruptedException e) {
e.printStackTrace();
}
if (task.isAlive()) {//子线程仍在执行,中断子线程,实行异常处理
task.interrupt();
throw new Exception();
}