All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.admin4j.framework.lock.constant.LockModel Maven / Gradle / Ivy

package com.admin4j.framework.lock.constant;

/**
 * @author andanyang
 * @since 2021/12/22 11:27
 */
public enum LockModel {
    /**
     * REENTRANT(可重入锁),FAIR(公平锁),MULTIPLE(联锁),REDLOCK(红锁),READ(读锁), WRITE(写锁),
     * AUTO(自动模式,当参数只有一个.使用 REENTRANT 参数多个 MULTIPLE)
     */
    REENTRANT,
    /**
     * 公平锁
     * 它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程。
     * 所有请求线程会在一个队列中排队,当某个线程出现宕机时,Redisson会等待5秒后继续下一个线程,
     * 也就是说如果前面有5个线程都处于等待状态,那么后面的线程会等待至少25秒。
     */
    FAIR,
    /**
     * 读之前加读锁,读锁的作用就是等待该lockkey释放写锁以后再读
     */
    READ,
    /**
     * 写之前加写锁,写锁加锁成功,读锁只能等待
     */
    WRITE
    /**
     * 联锁:
     * 基于Redis的Redisson分布式联锁RedissonMultiLock对象可以将多个RLock对象关联为一个联锁,
     * 每个RLock对象实例可以来自于不同的Redisson实例。
     * ```
     * RLock lock1 = redissonInstance1.getLock("lock1");
     * RLock lock2 = redissonInstance2.getLock("lock2");
     * RLock lock3 = redissonInstance3.getLock("lock3");
     * 

* RedissonMultiLock lock = new RedissonMultiLock(lock1, lock2, lock3); * // 同时加锁:lock1 lock2 lock3 * // 所有的锁都上锁成功才算成功。 * lock.lock(); * ... * lock.unlock(); * ``` */ //MULTIPLE, //AUTO }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy