编辑 | blame | 历史 | 原始文档

1. 简介

当需要资源竞争时,需要用到锁。在集群环境下,不能用jvm锁。

2. 基本用法

@Autowired
private LockComponent lockComponent;
if (lockComponent.tryLock(LockConst.TAKE_ORDER_LOCK + userId, 20)) {
    //加上乐观锁,防止用户重复提交订单
lockComponent.release(LockConst.TAKE_ORDER_LOCK + userId);

3. 详细介绍

3.1. 不阻塞锁

public boolean tryLock(String key, Integer timeoutSec) {

3.2. 阻塞锁

public boolean lockBlock(String key, Integer timeoutSec) {

特别注意:阻塞锁本质是自旋锁,对于竞争过大(线程过多),请不要使用。