net.sourceforge.jtds.jdbc
Class Semaphore
java.lang.Object
net.sourceforge.jtds.jdbc.Semaphore
public class Semaphore
extends java.lang.Object
Simple semaphore class used to serialize access requests over the network
connection.
Based on the code originally written by Doug Lea. Once JDK 1.5 is the
standard this class can be replaced by the
java.util.concurrent.Sempahore
class.
$Id: Semaphore.java,v 1.1 2004/12/20 15:51:17 alin_sinpalean Exp $protected long | permits - Current number of available permits.
|
Semaphore(long initialPermits) - Create a Semaphore with the given initial number of permits.
|
void | acquire() - Wait until a permit is available, and take one.
|
boolean | attempt(long msecs) - Wait at most msecs millisconds for a permit.
|
long | permits() - Return the current number of available permits.
|
void | release() - Release a permit.
|
void | release(long n) - Release N permits.
|
permits
protected long permits
Current number of available permits.
Semaphore
public Semaphore(long initialPermits)
Create a Semaphore with the given initial number of permits. Using a
seed of one makes the semaphore act as a mutual exclusion lock. Negative
seeds are also allowed, in which case no acquires will proceed until the
number of releases has pushed the number of permits past 0.
acquire
public void acquire()
throws InterruptedException
Wait until a permit is available, and take one.
attempt
public boolean attempt(long msecs)
throws InterruptedException
Wait at most msecs millisconds for a permit.
permits
public long permits()
Return the current number of available permits. Returns an accurate, but
possibly unstable value, that may change immediately after returning.
release
public void release()
Release a permit.
release
public void release(long n)
Release N permits.
release(n)
is equivalent in effect to:
for (int i = 0; i <32n; ++i) release();
But may be more efficient in some semaphore implementations.
Generated on September 18 2009