PDA

View Full Version : Monitor in Java


misterx
10-04-2007, 11:57
non mi è chiaro il concetto di monitor in java. So che si usano nella programmazione concorrente ma devono essere difiniti nella classe server, client o altro ?

Se ho l'oggetto A che deve usare una risorsa pubblica dell'oggetto C ma anche B vuole usare allo stesso tempo la risorsa, chi sospende momentaneamente l'accesso dell'oggetto A o B ?

Il mio libro dice: all'interno di un monitor.....

all'interno ?????


edit

mi fa venire in mente che un monitor sia implementato in questa maniera:

<monitor>

codice del monitor
......
......
......

<oggetto che sta usando il monitor>


</monitor>

71104
10-04-2007, 16:23
in Java a ciascun oggetto (ovvero a ciascun oggetto della classe Object) viene associato un cosidetto monitor, che è un meccanismo di sincronizzazione che funge da mutex/sezione critica. un monitor è il meccanismo fondamentale di sincronizzazione su cui si basa Java, e viene acquisito quando si entra in un blocco synchronized e rilasciato quando se ne esce. vale a dire che un solo thread alla volta può entrare nel blocco synchronized di uno stesso oggetto.