Spero che il tuo non sia un "compito a casa" ... altrimenti il voto me lo devo prendere io.Originariamente inviato da citrus
wow fantastico!
non mi aspettavo tanto!
così mi togli tutto il divertimento(naturalmente scherzo)
![]()
![]()
No, non è proprio così.Originariamente inviato da citrus
vorrei capire però una cosa:
il synchornized lo usi per fare in modo che solo un thread per volta possa accedere all'oggetto monitor, giusto?
nel nostro caso però si può anche fare a meno vero?
tanto il thread è sempre e solo 1...
Il metodo waitUntilExists() non è synchronized, quindi più thread potrebbero effettivamente chiamare questo metodo (su una stessa istanza di WaitForFile) per aspettare il file.
L'unico svantaggio è che verrebbero creati N thread di polling ... ma quello è il meno. Si potrebbe anche studiare una soluzione un po' più completa/complessa in cui c'è sempre solo 1 thread di polling.
Comunque, a parte questo, all'interno del metodo creo un Object che mi serve per la sincronizzazione tra il thread corrente e il thread di polling (e non c'entra nulla con il fatto che più thread possono chiamare waitUntilExists() ). Il synchronized su 'monitor' serve perché per fare la wait o la notify su un oggetto, bisogna "possederne" il suo monitor (e non a caso ho chiamato la variabile 'monitor').

(naturalmente scherzo)
Rispondi quotando