Class Semaphore

java.lang.Object
  |
  +--Semaphore

public class Semaphore
extends java.lang.Object

Classe implémentant un sémaphore.

Un sémaphore permet de contrôler le nombre de processus accédant à une ressource partagée.

Remarque: Cette classe est totalement générale, c'est à dire qu'elle peut être réutilisée.

Remarque: Cette classe n'est plus utilisée car elle devait servir dans l'implémentation de la classe LockedPrintStream, mais celle-ci a été dépréciée. telle quelle dans une autre application.

See Also:
LockedPrintStream

Field Summary
protected  int val
          Indique le nombre maximal d'accès simultanés à la ressource partagée
 
Constructor Summary
Semaphore()
          Construit un nouvel objet Semaphore n'autorisant qu'un seul accès à la fois à la ressource partagée.
Semaphore(int nb)
          Construit un nouvel objet Semaphore autorisant nb accès simultanés à la ressource partagée.
 
Method Summary
 void P()
          Demande l'autorisation d'accéder à la resource partagée.
 void V()
          Relache la ressource partagée pour permettre éventuellement à un autre processus d'y accéder.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

val

protected int val
Indique le nombre maximal d'accès simultanés à la ressource partagée

Constructor Detail

Semaphore

public Semaphore()
Construit un nouvel objet Semaphore n'autorisant qu'un seul accès à la fois à la ressource partagée.

Identique au constructeur Semaphore(int) auquel on aurait passé 1 en argument.

See Also:
Semaphore(int)

Semaphore

public Semaphore(int nb)
          throws java.lang.IllegalArgumentException
Construit un nouvel objet Semaphore autorisant nb accès simultanés à la ressource partagée.

Parameters:
nb - le nombre maximum d'accès simultanés à la ressource partagée.
Method Detail

P

public void P()
Demande l'autorisation d'accéder à la resource partagée.

Lorsque le nombre maximum d'accès à la ressource est atteint, tous les processus appelant cette méthode sont mis en attente.


V

public void V()
Relache la ressource partagée pour permettre éventuellement à un autre processus d'y accéder.