最近我试图使用futuretask,我发现了以下问题
例如,如果我有一个任务实现Callable
class Task implements Callable {
...
}
Task task = new Task();
ExecutorService exec = Executors.newFixedThreadPool(4);
for (int i=0; i<4; i++) {
exec.submit(task);
}
我将有4个线程来执行
如果改为FutureTask,如
class Task implements Callable {
...
}
class MyFutureTask extends FutureTask {
...
}
Task task = new Task();
MyFutureTask ftask = new MyFutureTask(task);
ExecutorService exec = Executors.newFixedThreadPool(4);
for (int i=0; i<4; i++) {
exec.submit(ftask);
}
我发现只有1个线程被执行。
任何人都知道为什么?