2 回答

TA贡献2041条经验 获得超4个赞
看一段伪代码:
while (true) {
task = fetch task
If no task: wait/yield
Else: execute task
}
换句话说:您只需实现一个run()方法,该方法循环并执行任何Runnable(或传递给它的任何内容)的 run 方法。如果没有工作可用,则该方法会休眠或等待通知。

TA贡献1795条经验 获得超7个赞
首先,FutureTask是Runnable,所以你可以task.run();在// TODO.
其次,你根本不需要taskQueue = new BlockingQueue<FutureTask<V>>();。将您的实现ExecutorService作为对现有Executor:的补充
class MyExecutorService implements ExecutorService {
private final Executor executor;
public MyExecutorService(Executor executor) {
this.executor=executor;
}
public Future<?> submit(Runnable task) {
FutureTask task = new FutureTask(task);
executor.exec(task);
return task;
}
}
添加回答
举报