我使用executorService使用此代码一次只执行一个任务
executorService=Executors.newSingleThreadExecutor();
我使用Thread.activeCount()来获取活动线程的数量,但每当我向executorService提交一个可运行的任务时,活动线程的数量会增加1.怎么可能?
我以为newSingleThreadExecutor()允许一次只执行一个任务.为什么线程数量不断增加?不应该线程数只增加一个而不是更多?
请注意,即使提交新任务,我也使用future来取消所有runnable的执行,并且工作正常;所有runnable都被打断了.但是,活动线程的数量不断增加.
编辑:这是每当我按下按钮时调用的代码(Worker只是一个实现runnable的类):
private void handle() {
executorService=Executors.newSingleThreadExecutor();
Worker worker=new Worker();
future=executorService.submit(new Worker());
}