public class MainTest {
public static void main(String[] args) {
ExecutorService threadPool = Executors.newFixedThreadPool(5);
for(int i = 0; i < 100000; i++) {
threadPool.execute(new Command());
}
while(true) {
try {
Thread.sleep(10);
}
catch (InterruptedException e) {
e.printStackTrace();
}
if(Resource.getTotal() == 100000) {
threadPool.shutdown();
break;
}
}
}
}
主线程无线循环判断,当总数到达100000的时候,终止线程池,然后程序终止。为什么这里一定要加上sleep(10)?如果不加sleep(10),程序最后不会终止。这是为什么呢?
为什么没有sleep(10)这句,就不会走到if判断呢,if也在while循环体内部啊,按理说不应该跳过if啊??