|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
java.lang.Object | +--org.apache.avalon.excalibur.concurrent.DijkstraSemaphore
Also called counting semaphores, Djikstra semaphores are used to control access to a set of resources. A Djikstra semaphore has a count associated with it and each acquire() call reduces the count. A thread that tries to acquire() a Djikstra semaphore with a zero count blocks until someone else calls release() thus increasing the count.
| コンストラクタの概要 | |
DijkstraSemaphore(int maxCount)
Creates a Djikstra semaphore with the specified max count and initial count set to the max count (all resources released) |
|
DijkstraSemaphore(int maxCount,
int initialCount)
Creates a Djikstra semaphore with the specified max count and an initial count of acquire() operations that are assumed to have already been performed. |
|
| メソッドの概要 | |
void |
acquire()
If the count is non-zero, acquires a semaphore and decrements the count by 1, otherwise blocks until a release() is executed by some other thread. |
void |
acquireAll()
Tries to acquire all the semaphores thus bringing the count to zero. |
void |
release()
Releases a previously acquires semaphore and increments the count by one. |
void |
release(int count)
Same as release() except that the count is increased by pCount instead of 1. |
void |
releaseAll()
Releases all semaphores setting the count to max count. |
void |
starvationCheck()
This method blocks the calling thread until the count drops to zero. |
boolean |
tryAcquire()
Non-blocking version of acquire(). |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public DijkstraSemaphore(int maxCount)
pMaxCount - is the max semaphores that can be acquired
public DijkstraSemaphore(int maxCount,
int initialCount)
pMaxCount - is the max semaphores that can be acquired| メソッドの詳細 |
public void acquire()
throws java.lang.InterruptedException
java.lang.InterruptedException - is the thread is interrupted when blockedtryAcquire(),
acquireAll()public boolean tryAcquire()
public void release()
release( int pCount ),
releaseAll()public void release(int count)
pCount - is the amount by which the counter should be incrementedrelease()
public void acquireAll()
throws java.lang.InterruptedException
java.lang.InterruptedException - if the thread is interrupted when blocked on
this callacquire(),
releaseAll()public void releaseAll()
acquireAll()
public void starvationCheck()
throws java.lang.InterruptedException
java.lang.InterruptedException - if the thread is interrupted while waiting
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||