FutureTask只导致1个线程在4个线程池中执行?

时间:2017-05-01 23:13:27

标签: java

最近我试图使用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个线程被执行。

任何人都知道为什么?

0 个答案:

没有答案