Advertisement
VniciusMT

Semáforo Contador

May 24th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.57 KB | None | 0 0
  1. public class SemaforoContador {
  2.     private int cont;
  3.     private ReentrantLock lock;
  4.     private Condition c;
  5.    
  6.     SemaforoContador(int cont, boolean fila){
  7.         this.cont = cont;
  8.         lock = new ReentrantLock(fila);
  9.         c = lock.newCondition();
  10.     }
  11.  
  12.     public void acquire(){
  13.         lock.lock();
  14.         if(cont == 0)
  15.             c.awaitUninterruptibly();
  16.         else
  17.             cont--;
  18.         lock.unlock();
  19.     }
  20.    
  21.     public void release(){
  22.         lock.lock();
  23.         c.signal();
  24.         cont++;
  25.         lock.unlock();
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement