Witam,
mam problem z wielowątkowością w SwingWorkerze: otóż po wykonaniu kilku przejść w pętli roboczej wątek mi siada i nie chce ruszyć dalej. Oto moja funkcja robocza:
private void computeStatus() {
growHerbs();
for(int i = 0; i < herbivoreList.size(); i++) { // w tym miejscu wykonuje tylko siedem przejść i się zacina
if(herbivoreList.get(i).isAlive()) {
herbivoreList.get(i).computeBehavior(lifeBoard); // czasożerna funkcja
}
else {
lifeBoard.remove(herbivoreList.get(i));
herbivoreList.remove(i);
i--;
}
}
for(int i = 0; i < carnivoreList.size(); i++) {
if(carnivoreList.get(i).isAlive()) {
carnivoreList.get(i).computeBehavior(lifeBoard);
}
else {
lifeBoard.remove(carnivoreList.get(i));
carnivoreList.remove(i);
i--;
}*/
}
publish(new ArrayList<Being>(lifeBoard));
}
Mógłbym uzyskać odpowiedź co się dzieje z tym wątkiem? Czy java automatycznie zawiesza wątki, które zbyt długo trwają?