详情见实例代码
public class CheckTimeOut {
public static void main(String[] args) {
int threadNum = 5;
int timeOut = 6;
// 获取线程池
ExecutorService es = Executors.newFixedThreadPool(threadNum);
// JavaProject1应实现Callable,执行submit()方法时,会自动调用call()方法
JavaProject1 jp1 = new JavaProject1();
// Future用于执行多线程的执行结果
Future<String> future = es.submit(jp1);
try {
// futrue.get()测试被执行的程序是否能在timeOut时限内返回字符串
String a = future.get(timeOut,TimeUnit.SECONDS);
} catch(Exception ex){
System.out.println("被动终止程序");
System.exit(-1);
}
}
}
class JavaProject1 implements Callable<String>{
@Override
public String call() throws Exception {
try {
int i=0;
while(i<10000){
Thread.sleep(999);
i++;
System.out.println("程序已执行"+i+"秒");
}
} catch (Exception ex) {
System.out.println(ex.toString());
return "STOP";
}
return "STOP";
}
}
运行结果如下