【发布时间】:2018-05-10 15:58:56
【问题描述】:
我正在尝试创建 4 个线程并给它们分配任务。但是我不断收到 IllegalThreadStateException。我在这里潜伏了一些问题,但似乎没有一个对我有帮助。 这是关键的代码片段:
Sorter worker1 = new Sorter(theView,1);
Sorter worker2 = new Sorter(theView,2);
Sorter worker3 = new Sorter(theView,3);
Sorter worker4 = new Sorter(theView,4);
for(int nextTask=0 ; nextTask<List_of_FileContentsLists.size() ; nextTask++){
if(worker1.busy == false){
worker1.acquireTask(List_of_FileContentsLists.get(nextTask),fileList[nextTask]);
worker1.start();
}
else if(worker2.busy == false){
worker2.acquireTask(List_of_FileContentsLists.get(nextTask),fileList[nextTask]);
worker2.start();
}
else if(worker3.busy == false){
worker3.acquireTask(List_of_FileContentsLists.get(nextTask),fileList[nextTask]);
worker3.start();
}
else if(worker4.busy == false){
worker4.acquireTask(List_of_FileContentsLists.get(nextTask),fileList[nextTask]);
worker4.start();
}
else{
nextTask--;
}
}
提前致谢!
【问题讨论】:
标签: java multithreading exception state