如果我运行持久性任务如果第一个任务尚未完成,Executor从不启动新线程。有人能帮助我理解为什么以及如何解决这个问题?Executor未按预期处理任务
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
public class TestExecutor {
@Test
public void test() throws InterruptedException {
ExecutorService checkTasksExecutorService = new ThreadPoolExecutor(1, 10,
100000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
for (int i = 0; i < 20; i++) {
checkTasksExecutorService.execute(new Runnable() {
public void run(){
try {
System.out.println(Thread.currentThread().getName() + " running!");
Thread.sleep(10000);
} catch (Exception e) {
}
}
});
}
Thread.sleep(1000000);
}
}
你应该已经看过了'ThreadPoolExecutor'类的Javadoc :) –
@MarkoTopolnik javadoc没有答案!查看我的编辑 – Bohemian
你怎么看?你有看到我的报价吗?它预测到底会发生什么,以及要修改的内容。 –