JAVA使用futureTask时候注意的坑

在call里面不要用try catch

FutureTask mListenTask = new FutureTask(new Callable() {
    @Override
    public Object call() throws Exception {
// 注意这里面如有需要用轮询做一些事情的话,使用Thread.sleep的时候要注意不要try catch。不然的话,结果会表现为永远cancel不掉这个线程。因为本事用Exception去结束这个线程,却被我们try catch了。
// 代码
Thread.sleep(1000);
// 代码
   }
});

ThreadPoolUtils.execute(futureTask);
ThreadPoolUtils.cancel(futureTask);

删掉 try catch代码后发现现在可以cancel这个FutureTask了。