readerwriter
Class Semaphore

java.lang.Object
  |
  +--readerwriter.Semaphore

public class Semaphore
extends java.lang.Object

Semaforo per la protezione in mutua esclusione di una risorsa condivisa da piu' thread, i quali, per accedere alla risorsa devono eseguire l'opearazione di down() sul semaforo, il quale in base al suo stato (e quindi agli altri thread presenti o meno), quando il thread potra' proseguire in tranquillita', senza preoccuparsi di situazioni critiche; una volta terminato l'utilizzo della risorsa, il thread dovra' informare il semaforo eseguendo sullo stesso l'oprazione di up()

 private Semaphore sem = new Semaphore();
 ...
 sem.down(); // da questo punto in poi si puo' entrare nella regione critica
 // REGIONE CRITICA
 sem.up(); // il thread informa il semaforo, che sta' uscendo dalla regione critica
 


Constructor Summary
Semaphore()
          Inizializza allo stato di default lo stato interno
 
Method Summary
 Semaphore down()
          Esegue la classica operazione di P su di un semaforo, che ha termine quando nessun thread e' nella regione critica, e quando, secondo i turni di arrivo delle richieste di P dei thread (gestite in maniera FIFO), il thread attuale avra' il diritto di accedere alla regione critica
 Semaphore up()
          Esegue la classica operazione di V su di un semaforo, informando il semaforo, che il thread sta per lasciare la regione critica
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Semaphore

public Semaphore()
Inizializza allo stato di default lo stato interno
Method Detail

down

public Semaphore down()
Esegue la classica operazione di P su di un semaforo, che ha termine quando nessun thread e' nella regione critica, e quando, secondo i turni di arrivo delle richieste di P dei thread (gestite in maniera FIFO), il thread attuale avra' il diritto di accedere alla regione critica
Returns:
Semaphore Il semaforo sul quale si sta operando

up

public Semaphore up()
Esegue la classica operazione di V su di un semaforo, informando il semaforo, che il thread sta per lasciare la regione critica
Returns:
Semaphore Il semaforo sul quale si sta operando