用java代码实现分布式锁
时间: 2024-04-18 13:08:10 浏览: 113
好的,我可以回答这个问题。分布式锁是一种用于协调分布式系统中资源访问的机制。实现分布式锁的方法有很多,其中比较常见的是使用ZooKeeper、Redis等工具来实现。以下是一个简单的Java代码示例,使用Redis来实现分布式锁:
```java
import redis.clients.jedis.Jedis;
import redis.clients.jedis.params.SetParams;
public class DistributedLock {
private static final String LOCK_KEY = "mylock";
// 获取锁
public static boolean acquire(Jedis jedis, int timeout) {
long endTime = System.currentTimeMillis() + timeout;
while (System.currentTimeMillis() < endTime) {
SetParams params = SetParams.setParams().nx().ex(timeout);
String result = jedis.set(LOCK_KEY, "locked", params);
if ("OK".equals(result)) {
return true;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
return false;
}
// 释放锁
public static void release(Jedis jedis) {
jedis.del(LOCK_KEY);
}
}
```
阅读全文