62,616
社区成员
发帖
与我相关
我的任务
分享
BlockingQueue<FutureTask> queue = new SynchronousQueue<FutureTask>(true)
ExecutorService.execute(A);
public void run() {
while(iswork){
Task task = new Task(sql, params, fromSize, pageSize);
FutureTask<List> ft = new FutureTask<List>(task);
FutureTask<List> ft2 = new FutureTask<List>( new TaskBlank());
service.submit(ft);
service.submit(ft2);
fromSize += pageSize;
try {
queue.put(ft);
queue.put(ft2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
A.stop(){iswork=false}; //由于 SynchronousQueue 只能放一个 线程A执行到 queue.put(ft2); waiting 这段stop无效果
queue.clear();
ExecutorService.shutdown();
executor.shutdown();