Originariamente inviato da JavaFurbix
Come ottimizzare il programma con i thread cercando di farne partire 3 o 5 e ridurre i tempi di scansione dell'array rispetto ad un programma che scansiona ad 1 posizione per volta in modo crescente o banalmente senza threads. ?!?
Se hai un processore multi-core sì, puoi di certo avere vantaggi nell'usare più thread concorrenti. Se hai solo un single-core no, nel senso che avere più thread non dà vantaggi, anzi presumibilmente il contrario.
Ma è chiaro che uno può usare la applicazione su più macchine anche ben diverse. Quindi per fare le cose bene si dovrebbe determinare il numero appropriato di thread in base alla macchina.
Per lavori molto "cpu-bound" (intensivi per la CPU), il numero di thread appropriato è ... tah dah .... lo stesso numero di unità operative.

Originariamente inviato da JavaFurbix
La cosa più bruttina da fare è assegnare ad ogni thread un intervallo da controllare. Ma questo solo se si conosce la grandezza dell'array apriori.
L'idea di assegnare ad ogni thread una porzione dei dati da controllare .... beh, è questa in fondo la soluzione ... non è che è "bruttina".

Chi gestire il "pool" di thread comunque deve sapere la dimensione dell'array. Potrebbe non saperlo poi il thread che compie il lavoro.