Hai già l'altra discussione aperta ...Originariamente inviato da lio.b
ho un array (memoria condivisa) in cui un thread scrittore va a scrivere dei file immagine e un thread lettore le mostra su di una gui.
Ma quello che forse non hai ancora afferrato è che il get()/set() su un List ma anche un add() se ipotizziamo un numero non enorme di elementi, sono operazioni brevissime!!!Originariamente inviato da lio.b
Se uso shincronyzer mi ritrovo che mentre leggo l'immagine nella cella 0 (per esempio) non posso scrivere le nuove immagini nella cella 1 e 2 dell'array
Quindi usando un Vector (o ArrayList in un synchronized "wrapper") se anche un thread sta leggendo la cella X (quindi ha il lock) è una operazione brevissima e se un altro thread sta cercando di leggere un'altra cella o di aggiungere un elemento ... beh, aspetterà un tempo molto molto molto piccolo.
E come ti ho già detto nell'altra discussione, non servirebbe un thread che "legge", basterebbe usare un Timer.