|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--readerwriter.Guardian | +--readerwriter.ReadersPreferedGuardian
La classe definisce le priorita' di accesso alla risorsa condivisa, da parte di Lettori e Scrittori, preferendo i lettori : Ovviamente i lettori possono accedere tutti allo stesso momento alla risorsa, ma se ci sono lettori sulla risorsa, l'accesso agli scrittori e' vietato, solo quando non esistono piu' lettori, l'ultimo lettore, assegnera' la risorsa ad uno scrittore
Constructor Summary | |
ReadersPreferedGuardian()
Inizializza allo stato di default le variabili private della classe |
|
ReadersPreferedGuardian(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 il lettore attuale e' l'ultimo lettore della risorsa, non ci sono altri lettori che stanno utilizzando la risorsa, e c'e' almeno uno scrittore che e' in coda per accedere alla risorsa, questo viene selezionato |
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, l'uso della risorsa ad uno scrittore, potra' essere autorizzata, solo es esclusivamente se non esistono lettori che stanno attualmente utilizzando la risorsa |
void |
iniziaLettura(java.lang.Object priority)
Determina l'inizio dell'operazione di lettura da parte di un thread ATTENZIONE : L'operazione e' thread safe I lettori hanno la priorita', quindi anche se ci sono lettori in attesa, i lettori possono accedere, contemporaneamente vista la loro natura di lettori, alla risorsa. |
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 ReadersPreferedGuardian()
public ReadersPreferedGuardian(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
I lettori hanno la priorita', quindi anche se ci sono lettori in attesa, i lettori possono accedere, contemporaneamente vista la loro natura di lettori, alla risorsa. Ovviamente se c'e' gia' uno scrittore che sta utilizzando la risorsa, allora il/i lettori dovranno attendere
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 il lettore attuale e' l'ultimo lettore della risorsa, non ci sono altri lettori che stanno utilizzando la risorsa, e c'e' almeno uno scrittore che e' in coda per accedere alla risorsa, questo viene selezionato
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, l'uso della risorsa ad uno scrittore, potra' essere autorizzata, solo es esclusivamente se non esistono lettori che stanno attualmente utilizzando la risorsa
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 |