### 1. 简介 > 当需要资源竞争时,需要用到锁。在集群环境下,不能用jvm锁。 ### 2. 基本用法 ```java @Autowired private LockComponent lockComponent; ``` ```java if (lockComponent.tryLock(LockConst.TAKE_ORDER_LOCK + userId, 20)) { //加上乐观锁,防止用户重复提交订单 ``` ```java lockComponent.release(LockConst.TAKE_ORDER_LOCK + userId); ``` ### 3. 详细介绍 #### 3.1. 不阻塞锁 ```java public boolean tryLock(String key, Integer timeoutSec) { ``` #### 3.2. 阻塞锁 ```java public boolean lockBlock(String key, Integer timeoutSec) { ``` **特别注意:**阻塞锁本质是自旋锁,对于竞争过大(线程过多),请不要使用。