Quote:
Originariamente inviato da PGI-Bis
Può essere un problema di sincronizzazione (che manca) o un errore logico. Nel secondo caso dovresti notare il problema sempre nello stesso momento, nel primo dovrebbe verificarsi in modo apparentemente casuale.
Se il problema è di sincronizzazione allora devi controllare il tuo codice perchè da qualche parte assumi la visibilità inter-thread di una mutazione di stato che in verità, per com'è fatto il codice, non è garantita.
|
Beh, non penso che sia un errore logico, sembra casuale la cosa, ma avviene sempre poco dopo l'avvio.
I Thread li sincronizzo con il Join, dici che può bastare?
Più o meno faccio così:
Codice:
for (int i=0; i<threadQuantity; i++){threadList.add(new myThread(objectList));
threadList.get(threadList.size()-1).start();
}
for (int i=0; i<threadQuantity; i++){threadList.get(i).join();
}