大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
方式一
RLock lock = redissonClient.getLock("Export:create:" + Context.get().getCorpId());
try {
if (lock.tryLock(5, 10, TimeUnit.SECONDS)) {
//业务处理
} else {
Assert.isTrue(false, "排队中,请稍后重试!");
}
} catch (InterruptedException e) {
Assert.isTrue(false, "请勿重复操作!");
} finally {
if (lock.isLocked()) {
lock.unlock();
}
}
方式二:
RLock lock = redisson.getLock(String.format(REWARD_CARD_LOCK_KEY, 2));
try {
//尝试加锁,最多等待10秒,上锁以后10秒自动解锁
if (lock.tryLock(10,10, TimeUnit.SECONDS)) {
try {
//处理
logger.info(“tryLock thread—{}, lock:{}”, Thread.currentThread().getId(), lock);
} catch (Exception e) {
} finally {
//解锁
lock.unlock();
}
}
} catch (InterruptedException e) {
//处理
//保留中断发生的证据,以便调用栈中更高层的代码能知道中断,并对中断作出响应 Thread.currentThread().interrupt();
}
public void testReentrantLock(RedissonClient redisson){
RLock lock = redisson.getLock(“anyLock”);
try{
// 1. 最常见的使用方法
//lock.lock();
// 2. 支持过期解锁功能,10秒钟以后自动解锁, 无需调用unlock方法手动解锁
//lock.lock(10, TimeUnit.SECONDS);
// 3. 尝试加锁,最多等待3秒,上锁以后10秒自动解锁
boolean res = lock.tryLock(3, 10, TimeUnit.SECONDS);
if(res){ //成功
// do your business
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183889.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...