|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--readerwriter.Guardian | +--readerwriter.WritersPreferedGuardian
La classe definisce le priorita' di accesso alla risorsa condivisa, da parte di Lettori e Scrittori, preferendo gli scrittori : Se uno scrittore tenta di accedere alla risorsa, nuovi lettori non sono ammessi sulla risorsa, i lettori invece che stanno utilizzando la risorsa, vengono lasciati uscire. In piu' se un lettore scrittore, finito l'utilizzo della risorsa, dovra' decidere a chi, fra un lettore ed uno scrittore, assegnare la risorsa, preferira' quest'ultimo.
Constructor Summary | |
WritersPreferedGuardian()
Inizializza allo stato di default le variabili private della classe |
|
WritersPreferedGuardian(ThreadSelector readers,
ThreadSelector writers)
Inizializza gli attributi privati della classe con i parametri attuali |
Method Summary | |
void |
fineLettura()
Determina la fine dell'operazione di lettura da parte di un thread ATTENZIONE : L'operazione e' thread safe La lettura della risorsa e' terminata, se esistono scrittori in attesa, si preferira' co nsentire loro l'uso della risorsa, prima che ad eventuali altri lettori |
void |
fineScrittura()
Determina la fine dell'operazione di scrittura da parte di un thread ATTENZIONE : L'operazione e' thread safe La scrittura della risorsa e' terminata, si preferira' anche in questo caso consentire l'uso della risorsa agli scrittori, piuttosto che ad eventuali altri lettori |
void |
iniziaLettura(java.lang.Object priority)
Determina l'inizio dell'operazione di lettura da parte di un thread ATTENZIONE : L'operazione e' thread safe Se esistono scrittori in attesa, il lettore si mette in pausa, in attesa che tutti gli scrittori abbiano finito il loro compito. |
void |
iniziaScrittura(java.lang.Object priority)
Determina l'inizio dell'operazione di scrittura da parte di un thread ATTENZIONE : L'operazione e' thread safe Se esiste qualcuno che sta leggendo o scrivendo sulla risorsa, l'operazione si interrompe, in attesa di ricevere l'autorizzazione di procedere oltre |
Methods inherited from class readerwriter.Guardian |
decrNumReaders, decrNumWriters, getNumReaders, getNumWriters, incrNumReaders, incrNumWriters |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public WritersPreferedGuardian()
public WritersPreferedGuardian(ThreadSelector readers, ThreadSelector writers)
readers
- ThreadSelector che definira' la politica di risveglio dei thread in letturawriters
- ThreadSelector che definira' la politica di risveglio dei thread in scritturaMethod Detail |
public void iniziaLettura(java.lang.Object priority) throws SemaphoredThreadRequireException
Determina l'inizio dell'operazione di lettura da parte di un thread
ATTENZIONE : L'operazione e' thread safe
Se esistono scrittori in attesa, il lettore si mette in pausa, in attesa che tutti gli scrittori abbiano finito il loro compito. Se esistono altri lettori sulla risorsa, l'opearazione procede senza interruzioni
iniziaLettura
in class Guardian
priority
- L'ogetto che rappresenta la priorita' da attribuire all'operazioneSemaphoredThreadRequireException
- Eccezione lanciata se il thread che sta per eseguire il
metodo non e' un Thread di tipo SemaphoredThread
public void fineLettura() throws SemaphoredThreadRequireException
Determina la fine dell'operazione di lettura da parte di un thread
ATTENZIONE : L'operazione e' thread safe
La lettura della risorsa e' terminata, se esistono scrittori in attesa, si preferira' co nsentire loro l'uso della risorsa, prima che ad eventuali altri lettori
fineLettura
in class Guardian
SemaphoredThreadRequireException
- Eccezione lanciata se il thread che sta per eseguire il
metodo non e' un Thread di tipo SemaphoredThread
public void iniziaScrittura(java.lang.Object priority) throws SemaphoredThreadRequireException
Determina l'inizio dell'operazione di scrittura da parte di un thread
ATTENZIONE : L'operazione e' thread safe
Se esiste qualcuno che sta leggendo o scrivendo sulla risorsa, l'operazione si interrompe, in attesa di ricevere l'autorizzazione di procedere oltre
iniziaScrittura
in class Guardian
priority
- L'ogetto che rappresenta la priorita' da attribuire all'operazioneSemaphoredThreadRequireException
- Eccezione lanciata se il thread che sta per eseguire il
metodo non e' un Thread di tipo SemaphoredThread
public void fineScrittura() throws SemaphoredThreadRequireException
Determina la fine dell'operazione di scrittura da parte di un thread
ATTENZIONE : L'operazione e' thread safe
La scrittura della risorsa e' terminata, si preferira' anche in questo caso consentire l'uso della risorsa agli scrittori, piuttosto che ad eventuali altri lettori
fineScrittura
in class Guardian
SemaphoredThreadRequireException
- Eccezione lanciata se il thread che sta per eseguire il
metodo non e' un Thread di tipo SemaphoredThread
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |