|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2007
Città: Roma
Messaggi: 93
|
[Java] Lettura concorrente stessi elementi in Buffer
Più che un problema è una ricerca.... Almeno io ho cercato e non ho trovato.
Vi volevo chiedere se esiste da qualche parte nelle librerie una classe sullo stampo delle BlockingQueue che consente a più Thread di leggere da un buffer unico gli elementi in modo tale che un elemento nel buffer venga tolto solo quando tutti i Thread hanno letto quell'elemento dal Buffer? (logicamente dandogli informazioni iniziali sul numero di thread) In poche parole non mi va di implementarlo
__________________
Più ti avvicini alla luce, più la tua ombra diventa grande (Kingdom Hearts - Walt Disney e Squaresoft, ma la mano è della Squaresoft) |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Ma si può fare tranquillamente. Chiaramente è necessario fare in modo che i thread si "registrino" preventivamente presso la coda, in modo che quest'ultima sappia quanti sono i thread che possono prelevare gli elementi. Come gestire questa cosa ovviamente è da valutare .... bisognerebbe pensarci un attimo. Per la lettura immagino che debba essere così: un thread che vuole leggere il valore successivo dovrebbe rimanere "bloccato" nella read sulla coda fino a che tutti gli altri thread non hanno letto il valore precedente.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 20-08-2007 alle 18:48. |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2007
Città: Roma
Messaggi: 93
|
Si come con la tua soluzione la realizzazione è rapida ma IMHO tende a sacrificare eccessivamente il parallelismo...
Io ho in mente (e anche qualche schizzo su carta) la soluzione più "parallela" ma è la voglia che mi manca
__________________
Più ti avvicini alla luce, più la tua ombra diventa grande (Kingdom Hearts - Walt Disney e Squaresoft, ma la mano è della Squaresoft) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:44.




















