package com.infinitus.dmm.physical.service.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.locks.ReentrantLock;
/**
* @Author: 宋忠瑾
* @Description:
* @Date: Create in 18:20 2021/8/20
*/
@RestController
public class Test {
private final ReentrantLock lock = new ReentrantLock();
@GetMapping("/test")
public String a() throws InterruptedException {
if (lock.tryLock()) {
try {
System.out.println("获取锁成功");
System.out.println("模拟业务执行时间");
Thread.sleep(100000);
return ("获取锁成功");
} finally {
System.out.println("解锁");
lock.unlock();
}
} else {
System.out.println("获取锁失败");
return ("获取锁失败");
}
}
}
ReentrantLock锁解决同步场景并发问题,保证当前只允许一个用户调用接口。
最新推荐文章于 2023-01-11 18:51:35 发布