试图理解固定线程池我做了这个测试代码,它显示了以下结果,与我认为它会做的相反:
Thread Start: 1
Thread Start: 2
Thread Start: 0
就是这样。没有“线程结束”消息,仅启动了 3 个线程。
我期望并且我希望完成所有 10 个任务。
ExecutorService exec = Executors.newFixedThreadPool(3);
for (int c = 0; c < 10; c++) {
exec.execute(new TestThread(c));
}
exec.shutdown();
public class TestThread implements Runnable {
private int counter;
public TestThread (int counter) {
this.counter = counter;
}
@Override
public void run() {
System.out.println("Thread Start: " + counter);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread End: " + counter);
}
}
达令说
相关分类