com.github.libxjava.concurrent
Class Semaphore

java.lang.Object
  extended by com.github.libxjava.concurrent.Semaphore

public final class Semaphore
extends Object

Implementation of an "unfair" semaphore.

Version:
libxjava-cldc - 0.3
Author:
Marcel Patzlaff

Constructor Summary
Semaphore(int permits)
          Constructor for a Semaphore.
 
Method Summary
 void acquire()
          Blocks until a permit is available and acquires it.
 void acquire(int permits)
          Blocks until permits permits are available and acquires them.
 void acquireInterruptibly()
          Blocks until a permit is available and acquires it.
 void acquireInterruptibly(int permits)
          Blocks until permits permits are available and acquires them.
 int getPermits()
           
 void release()
          Releases a permit.
 void release(int permits)
          Releases permits permits.
 boolean tryAcquire()
          Tries to acquire a permit and returns immediately.
 boolean tryAcquire(int permits)
          Tries to acquire permits permits and returns immediately.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Semaphore

public Semaphore(int permits)
Constructor for a Semaphore.

Parameters:
permits - the initial amount of permits
Method Detail

acquire

public void acquire()
Blocks until a permit is available and acquires it. A call to this method is not interruptible!

Same as acquire(1);

See Also:
acquireInterruptibly()

acquire

public void acquire(int permits)
Blocks until permits permits are available and acquires them. A call to this method is not interruptible!

See Also:
acquireInterruptibly()

acquireInterruptibly

public void acquireInterruptibly()
                          throws InterruptedException
Blocks until a permit is available and acquires it. If this thread is interrupted an InterruptedException will be thrown.

Same as acquireInterruptibly(1);

Throws:
InterruptedException
See Also:
acquire()

acquireInterruptibly

public void acquireInterruptibly(int permits)
                          throws InterruptedException,
                                 IllegalArgumentException
Blocks until permits permits are available and acquires them. If this thread is interrupted an InterruptedException will be thrown.

Throws:
InterruptedException
IllegalArgumentException
See Also:
acquire()

release

public void release()
Releases a permit. If other threads are waiting they get notified.

Same as release(1);


release

public void release(int permits)
Releases permits permits. If other threads are waiting they get notified.


tryAcquire

public boolean tryAcquire()
Tries to acquire a permit and returns immediately.

Same as tryAcquire(1);

Returns:
true if acquisition was successful and false otherwise.

tryAcquire

public boolean tryAcquire(int permits)
Tries to acquire permits permits and returns immediately.

Returns:
true if acquisition was successful and false otherwise.

getPermits

public int getPermits()


Copyright © 2011 Marcel Patzlaff. All Rights Reserved.