我有一个多线程应用程序如下:
类Distrobuter:
1-将任务分配给新线程。
if(workers.size() >= MAXTHREADSALLOWED){
Worker worker = new Worker(task);
Thread t = new Thread(worker);
workers.add(t);
t.start();
}
2-删除已完成的线程。
Iterator<Thread> itr = workers.iterator();
while (itr.hasNext()){
Thread t = itr.next();
if(t.getState() == Thread.State.TERMINATED){
itr.remove();
}
}
班级工作人员:
执行某项任务
================================
但是,有些线程即使在状态未终止时也会被删除。
我知道线程已经完成,因为他们没有做任何活动(没有打印出来的)。但由于某种原因,它并不满足 这个条件:
(t.getState() == Thread.State.TERMINATED)
所以我的问题是: