package com.bill99.seashell.fsp.quartz.test;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
/**
* 启动一个任务,然后等待任务的计算结果,如果等待时间超出预设定的超时时间,则中止任务。
*
*/
public class TaskTimeoutDemo {
public static void main(String[] args) {
System.out.println("Start ...");
ExecutorService exec = Executors.newCachedThreadPool();
// testTask(exec, 15); // 任务成功结束后等待计算结果,不需要等到15秒
testTask(exec, 1); // 只等待5秒,任务还没结束,所以将任务中止
exec.shutdown();
System.out.println("End!");
}
public static void testTask(ExecutorService exec, int timeout) {