有人能帮忙解释一下这个错误:Java的睡眠所中断异常
private static ExecutorService es = Executors.newFixedThreadPool(1);;
private static List<Future<?>> futures = new ArrayList<Future<?>>();
futures.add(es.submit(new Callable<Object>() {
public Object call() throws Exception {
try{
Polling.start(); //has an while(true) loop
} catch (Exception e){
e.printStackTrace();
}
return null;
}
}));
Thread.sleep(2000);
System.out.println("stopping...");
es.shutdownNow();
futures.clear();
这给:
java.lang.InterruptedException: sleep interrupted
如何避免上面的异常,通过处理主要方法延误?
堆栈跟踪
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at bus.Polling.start(Polling.java:107)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
显示你的stacktrace – confucius