package org.redisson.api; // redisson写法
boolean lockResult = false;
try {
lockResult = lock.tryLock(3, 6, TimeUnit.SECONDS);
if (!lockResult) {
throw HotelRespCode.SYSTEM_BUSY_NOW.newException();
}
// 业务处理
} catch (Exception e) {
throw HotelRespCode.SYSTEM_BUSY_NOW.newException();
} finally {
// 1:锁对象不为空2:上锁成功3:该锁被当前线程持有4:是否有线程锁定
if (Objects.nonNull(lock)
&& lockResult
&& lock.isHeldByCurrentThread()
&& lock.isLocked()) {
lock.unlock();
}
}
高并发加锁
最新推荐文章于 2024-09-25 11:06:23 发布