Lock lock = LockHolder.createLock(bizCode, lockKey, timeoutMsecs, expireMsecs);
//(业务编号,锁定KEY,获取锁超时,锁超时)
-------------------------------
1
lock.lock()
/**
* 注意:此方法为在超时范围内阻塞式获取锁,如果超时仍然没有获得锁,将不中断,继续进行后续操作
*/
try
{
lock.lock();
// do some stuff
}
finally
{
lock.unlock();
}
-------------------------------2
lock.lockInterruptibly()
/**
* 注意:此方法为在超时范围内阻塞式获取锁,如果超时仍然没有获得锁,将中断不执行后续操作
*/
try
{
lock.lockInterruptibly();
// do some stuff
}
finally
{
lock.unlock();
}
-------------------------------
3
boolean
tryLock()
/**
* 注意:此方法为非阻塞式获取锁
*/
try
{
if
(lock.tryLock()) {
// do some stuff
}
}
finally
{
lock.unlock();
}
-------------------------------
4
boolean
tryLock(
long
time, TimeUnit unit)
/**
* 注意:此方法为在给定时间范围内的非阻塞式获取锁(给定时间为阻塞时间)
*/
try
{
if
(lock.tryLock(
1
, TimeUnit.SECONDS)) {
// do some stuff
}
}
finally
{
lock.unlock();
}