Sembra che quando istanzio 12 thread Swing Worker, i primi sei iniziano a completare il suo compito, finisce E poi gli ultimi sei inizia e finisce. Il comportamento che sto cercando è che tutti e 12 i thread inizino a lavorare contemporaneamente allo & allo stesso tempo.Thread Worker swing non simultanei
Ho il seguente:
for (int i = 0; i < 12; i++)
{
myTask m = new Mytask(i, START);
m.execute();
}
Il MyTask m aumenterà una barra di avanzamento 0-100 con incrementi di 25. Sto ricevendo un comportamento stravagante che i primi sei fili cominciano incremento, che terminerà a 100, quindi gli ultimi sei thread iniziano da 0 e incrementano e terminano.
C'è un fattore limitante sulla quantità di thread di Swing Worker che si possono avere?
il mio elemento di apprendimento del giorno :-) Solo non mi piace un aspetto dell'esempio: le attività accedono a textComponent dall'EDT (che in quel momento era ancora documentato per essere thread-safe ... che è sempre stato discusso ...) In breve: meglio non fare affidamento su di esso e avvolgere in un invocapo – kleopatra
@kleopatra: ben chiazzato! Questo [esempio] (http://stackoverflow.com/a/3245805/230513) ha avuto un problema simile (latente); il suo metodo 'display()' illustra il tuo suggerimento. – trashgod
Vedere anche questo [esempio] (http://stackoverflow.com/a/11372932/230513). – trashgod