- timeout
- the time to wait for the lock
- unit
- the time unit of the timeout argument
Documentation for this section has not yet been entered.
Type Reason Java.Lang.InterruptedException if the current thread is interrupted Java.Lang.NullPointerException if the time unit is null
Acquires the lock if it is not held by another thread within the given waiting time and the current thread has not been Java.Lang.Thread.Interrupt.
Acquires the lock if it is not held by another thread and returns immediately with the value true, setting the lock hold count to one. If this lock has been set to use a fair ordering policy then an available lock will not be acquired if any other threads are waiting for the lock. This is in contrast to the ReentrantLock.TryLock method. If you want a timed tryLock that does permit barging on a fair lock then combine the timed and un-timed forms together:
java Example
if (lock.tryLock() || lock.tryLock(timeout, unit)) { ... }
If the current thread already holds this lock then the hold count is incremented by one and the method returns true.
If the lock is held by another thread then the current thread becomes disabled for thread scheduling purposes and lies dormant until one of three things happens:
If the lock is acquired then the value true is returned and the lock hold count is set to one.
If the current thread:
If the specified waiting time elapses then the value false is returned. If the time is less than or equal to zero, the method will not wait at all.
In this implementation, as this method is an explicit interruption point, preference is given to responding to the interrupt over normal or reentrant acquisition of the lock, and over reporting the elapse of the waiting time.