• redis分布式锁-自动超时锁(在用)


    1、加锁代码结构

    2、解锁代码结构

    3、java实例

    4、测试类

    5、测试日志

    加锁代码结构

    def acquire_lock_with_timeout(conn,lockname,acquire_timeout,lock_timeout)
        identifer=uuid.uuid4
        lockname='lock:'+lockname
        repeat_end_time=current_time()+acquire_timeout
        
        while current_time<repeat_end_time
            if conn.setnx(lockname,identifer)
                conn.expire(lockname,lock_timeout)
                return identifer
            elif not conn.ttl(lockname)
                conn.expire(lockname,lock_timeout)
            time.sleep(0.001)
        return false

    解锁代码结构

    def release_loc(conn,lockname,identifer)
        pipe=conn.pipeline(true)
        lockname='lock:'+lockname
        while True
            try:
                pipe.watch(lockname)
                if pipe.get(lockname) == identifer   // 检查进程是否仍然是有锁,若未持有锁,则返回false
                    pipe.multi()
                    pipe.delete(lockname)
                    pipe.execute
                    return true
                pipe.unwatch()
                break
            except redis.exceptions.WatchError
                pass    // 有其他客户端修改了锁,重试
        return False

     java实例

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.Transaction;
    import redis.clients.jedis.exceptions.JedisException;
    import java.util.List;
    import java.util.UUID;
    
    public class Distributed_Lock {
    
        public static String lock_withTimeout(String lockName, long acquire_timeout, long timeout) {
            Jedis redis = null;
            String key_identifier = null;
            try {
                String identifier = Thread.currentThread().getName() + ":" + UUID.randomUUID().toString(); // Thread
                                                                                                            // just
                                                                                                            // for
                                                                                                            // debug
                String lockKey = "lock:" + lockName;
                int lockExpire = (int) (timeout / 1000);
                long end = System.currentTimeMillis() + acquire_timeout;
                while (System.currentTimeMillis() < end) {
                    redis = JedisUtil.getJedis();
                    if (redis == null) {
                        System.out.println(Thread.currentThread().getName()
                                + "  warning!!! lock_withTimeout can not get redis conn ,program repeat for get the conn");
                        Thread.sleep(100);
                        continue;
                    }
                    if (redis.setnx(lockKey, identifier) == 1) {// execute
                                                                // successfully will
                                                                // return "1"
                        redis.expire(lockKey, lockExpire);
                        key_identifier = identifier;
                        System.out.println(Thread.currentThread().getName() + "  获取锁:"+key_identifier);
                        return key_identifier;
                    }
                    if (redis.ttl(lockKey) == -1) {
                        redis.expire(lockKey, lockExpire);
                    }
                    long lockKey_ttl = redis.ttl(lockKey);
                    try {
                        System.out.println(Thread.currentThread().getName()
                                + "  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:" + lockKey_ttl);
    
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        Thread.currentThread().interrupt();
                    }
                    if (redis != null) {
                        redis.close();
                    }
                }
                System.out.println(Thread.currentThread().getName() + "  获取redis连接失败,放弃获取锁");
            } catch (Exception e) {
                System.out.println(Thread.currentThread().getName() + "  获取锁发生异常");
                e.printStackTrace();
            } finally {
                if (redis != null) {
                    redis.close();
                }
            }
            return key_identifier;
        }
    
        public static boolean lock_release(String lockName, String identifier) {
            Jedis redis = null;
            String lockKey = "lock:" + lockName;
            boolean retFlag = false;
            String _temp_identifier_from_redis = "";
            try {
                redis = JedisUtil.getJedis();
                while (true) {
                    if (redis == null) {
                        System.out.println(Thread.currentThread().getName()
                                + "  warning!!! lock_release can not get redis function,program repeat for get the conn");
                        try {
                            Thread.sleep(10);
                            redis = JedisUtil.getJedis();
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        continue;
                    }
                    redis.watch(lockKey);
                    _temp_identifier_from_redis = redis.get(lockKey);
                    if (_temp_identifier_from_redis == null || "".equals(_temp_identifier_from_redis)) {
                        System.out.println(Thread.currentThread().getName() + "  锁已过期失效失效");
                    } else if (identifier.equals(_temp_identifier_from_redis)) {
                        long del_result = redis.del(lockKey);
                        if (del_result == 1) {
                            System.out.println(Thread.currentThread().getName() + "  完成任务,释放锁");
                            retFlag = true;
                        } else {
                            System.out.println(Thread.currentThread().getName() + "  释放锁失败,锁已提前释放");
                            //continue;
                        }
                    } else {
                        System.out.println(Thread.currentThread().getName() + "  锁已过期失效,被污染");
                    }
                    redis.unwatch();
                    break;
                }
            } catch (JedisException e) {
                e.printStackTrace();
            } finally {
                if (redis != null) {
                    redis.close();
                }
            }
            return retFlag;
        }
    }

    测试类

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import redis.clients.jedis.Jedis;
    
    public class TestDistributed_Lock {
    
        public static void main(String[] args) {
            System.out.println( " main start");
            for (int i = 0; i < 100; i++) {
                Test_Thread_lock threadA = new Test_Thread_lock();
                threadA.start();
                try {
                    Thread.sleep(1);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    
    }
    
    class Test_Thread_lock extends Thread {
    
        public void run() {
            System.out.println(Thread.currentThread().getName() + " 启动运行");
            String indentifier = Distributed_Lock.lock_withTimeout("resource", 500000, 100000);
            if (indentifier == null) {
                System.out.println(Thread.currentThread().getName() + " 获取锁失败,取消任务");
            }else{
                System.out.println(Thread.currentThread().getName() + "  执行任务");
                Distributed_Lock.lock_release("resource", indentifier);
            }
            System.out.println(Thread.currentThread().getName() + " 完成推出");
        }
    
    }

    测试日志

     main start
    Thread-0 启动运行
    Thread-1 启动运行
    Thread-2 启动运行
    Thread-3 启动运行
    Thread-4 启动运行
    Thread-5 启动运行
    Thread-6 启动运行
    Thread-7 启动运行
    Thread-8 启动运行
    Thread-9 启动运行
    Thread-10 启动运行
    Thread-11 启动运行
    Thread-12 启动运行
    Thread-13 启动运行
    Thread-14 启动运行
    Thread-15 启动运行
    Thread-16 启动运行
    Thread-17 启动运行
    Thread-18 启动运行
    Thread-19 启动运行
    Thread-20 启动运行
    Thread-21 启动运行
    Thread-22 启动运行
    Thread-23 启动运行
    Thread-24 启动运行
    Thread-25 启动运行
    Thread-26 启动运行
    Thread-27 启动运行
    Thread-28 启动运行
    Thread-29 启动运行
    Thread-30 启动运行
    Thread-31 启动运行
    Thread-32 启动运行
    Thread-33 启动运行
    Thread-34 启动运行
    Thread-35 启动运行
    Thread-36 启动运行
    Thread-37 启动运行
    Thread-38 启动运行
    Thread-39 启动运行
    Thread-40 启动运行
    Thread-41 启动运行
    Thread-42 启动运行
    Thread-43 启动运行
    Thread-44 启动运行
    Thread-45 启动运行
    Thread-46 启动运行
    Thread-47 启动运行
    Thread-48 启动运行
    Thread-49 启动运行
    Thread-50 启动运行
    Thread-51 启动运行
    Thread-52 启动运行
    Thread-53 启动运行
    Thread-54 启动运行
    Thread-55 启动运行
    Thread-56 启动运行
    Thread-57 启动运行
    Thread-58 启动运行
    Thread-59 启动运行
    Thread-60 启动运行
    Thread-61 启动运行
    Thread-62 启动运行
    Thread-63 启动运行
    Thread-64 启动运行
    Thread-65 启动运行
    Thread-66 启动运行
    Thread-67 启动运行
    Thread-68 启动运行
    Thread-69 启动运行
    Thread-70 启动运行
    Thread-71 启动运行
    Thread-72 启动运行
    Thread-73 启动运行
    Thread-74 启动运行
    Thread-75 启动运行
    Thread-76 启动运行
    Thread-77 启动运行
    Thread-78 启动运行
    Thread-79 启动运行
    Thread-80 启动运行
    Thread-81 启动运行
    Thread-82 启动运行
    Thread-83 启动运行
    Thread-84 启动运行
    Thread-85 启动运行
    Thread-86 启动运行
    Thread-87 启动运行
    Thread-88 启动运行
    Thread-89 启动运行
    Thread-90 启动运行
    Thread-91 启动运行
    Thread-92 启动运行
    Thread-93 启动运行
    Thread-94 启动运行
    Thread-95 启动运行
    Thread-96 启动运行
    Thread-97 启动运行
    Thread-98 启动运行
    Thread-99 启动运行
    Thread-98  获取锁:Thread-98:2c75baea-0d98-48bb-8736-3d96be3b9e12
    Thread-98  执行任务
    Thread-97  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-16  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-15  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-14  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-95  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-99  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-13  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-12  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-11  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-9  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-10  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-8  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-7  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-4  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-6  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-1  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-0  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-5  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-3  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-17  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-18  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-19  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-20  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-21  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-22  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-23  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-24  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-25  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-26  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-27  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-28  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-29  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-30  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-31  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-32  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-34  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-35  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-36  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-37  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-38  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-39  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-40  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-41  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-42  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-43  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-44  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-45  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-46  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-47  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-48  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-49  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-50  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-51  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-52  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-53  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-54  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-55  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-56  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-57  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-58  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-59  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-60  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-61  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-62  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-64  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-96  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-65  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-66  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-67  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-68  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-69  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-70  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-71  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-72  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-73  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-74  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-75  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-76  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-78  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-77  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-79  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-80  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-2  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-94  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-93  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-81  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-92  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-83  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-82  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-84  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-85  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-91  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-90  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-86  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-87  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-89  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-88  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-98  完成任务,释放锁
    Thread-98 完成推出
    Thread-16  获取锁:Thread-16:4172d60b-795c-42b6-ab79-6bd35ab3d393
    Thread-16  执行任务
    Thread-95  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-99  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-16  完成任务,释放锁
    Thread-16 完成推出
    Thread-12  获取锁:Thread-12:09d449e3-c290-46f3-99d0-5975ed3e2b74
    Thread-97  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-12  执行任务
    Thread-13  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-9  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-8  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-12  完成任务,释放锁
    Thread-20  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-21  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-12 完成推出
    Thread-24  获取锁:Thread-24:4ec8404c-b5e6-4e52-94eb-e960afff5592
    Thread-24  执行任务
    Thread-5  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-0  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-17  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-52  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-51  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-48  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-44  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-49  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-45  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-1  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-59  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-60  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-4  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-64  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-96  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-61  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-65  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-70  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-66  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-73  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-75  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-76  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-80  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-58  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-74  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-92  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-83  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-84  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-91  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-77  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-87  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-78  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-88  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-57  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-2  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-93  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-94  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-81  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-82  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-85  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-90  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-86  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-89  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-54  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-53  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-50  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-55  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-56  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-47  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-24  完成任务,释放锁
    Thread-24 完成推出
    Thread-40  获取锁:Thread-40:6074038b-6b5d-466e-95f4-26ccd8881e03
    Thread-40  执行任务
    Thread-40  完成任务,释放锁
    Thread-40 完成推出
    Thread-43  获取锁:Thread-43:c84d78c8-21fe-4896-91b0-9902d4b8c1ea
    Thread-43  执行任务
    Thread-46  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-42  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-41  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-38  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-37  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-34  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-30  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-29  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-26  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-23  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-22  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-19  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-18  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-11  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-3  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-15  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-14  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-39  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-35  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-10  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-7  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-6  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-36  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-28  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-32  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-31  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-27  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-25  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-43  完成任务,释放锁
    Thread-43 完成推出
    Thread-79  获取锁:Thread-79:6fdce7a5-19a1-453a-bc71-7d9925e78cdc
    Thread-79  执行任务
    Thread-69  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-71  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-72  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-68  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-67  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-62  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-79  完成任务,释放锁
    Thread-79 完成推出
    Thread-99  获取锁:Thread-99:9bdf89e4-712b-4ae1-8ef5-58769d8b6027
    Thread-99  执行任务
    Thread-95  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-99  完成任务,释放锁
    Thread-99 完成推出
    Thread-97  获取锁:Thread-97:7ecb43e6-af95-47d1-9598-26d2db43de15
    Thread-97  执行任务
    Thread-97  完成任务,释放锁
    Thread-97 完成推出
    Thread-13  获取锁:Thread-13:2958075d-6e58-452f-b736-ee20663d3017
    Thread-13  执行任务
    Thread-13  完成任务,释放锁
    Thread-13 完成推出
    Thread-9  获取锁:Thread-9:2c1f6177-203e-43b2-81a0-4694c58b1cfb
    Thread-9  执行任务
    Thread-8  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-9  完成任务,释放锁
    Thread-9 完成推出
    Thread-20  获取锁:Thread-20:056395e7-5e7e-444a-b5bb-5040c7edc12d
    Thread-20  执行任务
    Thread-21  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-20  完成任务,释放锁
    Thread-20 完成推出
    Thread-5  获取锁:Thread-5:076d1c88-3d67-4b0a-8822-9866246f3b0a
    Thread-5  执行任务
    Thread-0  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-5  完成任务,释放锁
    Thread-51  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-5 完成推出
    Thread-48  获取锁:Thread-48:c8d0ca49-0b17-43d9-bc21-e5c6819e640e
    Thread-48  执行任务
    Thread-52  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-44  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-17  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-48  完成任务,释放锁
    Thread-48 完成推出
    Thread-49  获取锁:Thread-49:7c9fbc26-d959-4f5c-bfcc-43d716f06f5f
    Thread-49  执行任务
    Thread-45  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-59  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-49  完成任务,释放锁
    Thread-49 完成推出
    Thread-1  获取锁:Thread-1:7b6b5faa-3465-4252-93a1-041336b91eec
    Thread-1  执行任务
    Thread-1  完成任务,释放锁
    Thread-1 完成推出
    Thread-60  获取锁:Thread-60:f7eedc16-6a7b-4652-bf6f-f1c13942a897
    Thread-60  执行任务
    Thread-4  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-60  完成任务,释放锁
    Thread-60 完成推出
    Thread-64  获取锁:Thread-64:a989aaaf-405d-43fa-b423-46a53dc22f32
    Thread-64  执行任务
    Thread-96  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-64  完成任务,释放锁
    Thread-64 完成推出
    Thread-65  获取锁:Thread-65:5c3891aa-51ee-44d4-bf00-cb5d6cc95b25
    Thread-65  执行任务
    Thread-61  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-65  完成任务,释放锁
    Thread-65 完成推出
    Thread-70  获取锁:Thread-70:7fdff6ca-c792-4a1a-b50b-7e30237d7118
    Thread-70  执行任务
    Thread-70  完成任务,释放锁
    Thread-70 完成推出
    Thread-73  获取锁:Thread-73:e909c294-3d50-451b-a77a-44066d30d5bc
    Thread-73  执行任务
    Thread-66  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-73  完成任务,释放锁
    Thread-73 完成推出
    Thread-75  获取锁:Thread-75:b18fd2be-ac1f-4585-950d-eee7c1895846
    Thread-75  执行任务
    Thread-76  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-75  完成任务,释放锁
    Thread-75 完成推出
    Thread-80  获取锁:Thread-80:e4ca2fa6-f6f4-4940-8808-47ac057deeab
    Thread-80  执行任务
    Thread-58  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-80  完成任务,释放锁
    Thread-80 完成推出
    Thread-74  获取锁:Thread-74:662cca2f-fdb3-4cb3-b80a-3154c180bf2c
    Thread-74  执行任务
    Thread-74  完成任务,释放锁
    Thread-74 完成推出
    Thread-84  获取锁:Thread-84:ebcba311-2db3-440b-8103-f1727d73711e
    Thread-84  执行任务
    Thread-83  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-92  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-91  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-84  完成任务,释放锁
    Thread-84 完成推出
    Thread-77  获取锁:Thread-77:cdd853b1-4490-4b73-b205-022531d59c53
    Thread-77  执行任务
    Thread-87  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-77  完成任务,释放锁
    Thread-77 完成推出
    Thread-78  获取锁:Thread-78:c3420af8-bf0b-446a-9a07-ec709f36ebc0
    Thread-78  执行任务
    Thread-88  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-78  完成任务,释放锁
    Thread-78 完成推出
    Thread-57  获取锁:Thread-57:25bb0e44-256a-4025-8970-39eb0bf39d6e
    Thread-57  执行任务
    Thread-57  完成任务,释放锁
    Thread-57 完成推出
    Thread-2  获取锁:Thread-2:a95241d4-13e5-4fb2-a3b9-461fa6c55e2b
    Thread-2  执行任务
    Thread-93  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-2  完成任务,释放锁
    Thread-2 完成推出
    Thread-81  获取锁:Thread-81:1a0de521-c2a2-4485-96c9-f6367e59068f
    Thread-81  执行任务
    Thread-81  完成任务,释放锁
    Thread-81 完成推出
    Thread-85  获取锁:Thread-85:6151b661-d193-48c9-8268-4ad55116d51d
    Thread-85  执行任务
    Thread-85  完成任务,释放锁
    Thread-94  获取锁:Thread-94:e610b14a-6774-444f-b897-4081bd83b500
    Thread-94  执行任务
    Thread-85 完成推出
    Thread-89  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-90  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-82  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-86  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-94  完成任务,释放锁
    Thread-54  获取锁:Thread-54:f7d1151a-0aa7-4888-9d4a-31c40e162164
    Thread-54  执行任务
    Thread-94 完成推出
    Thread-54  完成任务,释放锁
    Thread-54 完成推出
    Thread-53  获取锁:Thread-53:afceb431-6306-423f-80d5-3f05cdce29e6
    Thread-53  执行任务
    Thread-53  完成任务,释放锁
    Thread-50  获取锁:Thread-50:8079a307-7a85-4bce-a304-4b669b16eb87
    Thread-50  执行任务
    Thread-50  完成任务,释放锁
    Thread-50 完成推出
    Thread-53 完成推出
    Thread-55  获取锁:Thread-55:d2adb3e6-d080-4a58-804d-7cfe6846e920
    Thread-55  执行任务
    Thread-55  完成任务,释放锁
    Thread-55 完成推出
    Thread-56  获取锁:Thread-56:72f2a419-0ce5-40b1-bb54-87909783abc8
    Thread-56  执行任务
    Thread-56  完成任务,释放锁
    Thread-56 完成推出
    Thread-47  获取锁:Thread-47:b22b2bac-8857-4811-ac68-c0280d28796e
    Thread-47  执行任务
    Thread-47  完成任务,释放锁
    Thread-47 完成推出
    Thread-42  获取锁:Thread-42:a55cc000-0b8a-41dd-ad3e-99710158ea65
    Thread-42  执行任务
    Thread-46  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-41  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-37  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-42  完成任务,释放锁
    Thread-42 完成推出
    Thread-34  获取锁:Thread-34:00470d00-a9fc-4267-911a-629fdd644f10
    Thread-34  执行任务
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-38  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-30  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-34  完成任务,释放锁
    Thread-34 完成推出
    Thread-29  获取锁:Thread-29:c9703eb6-5b31-4161-b243-64ad6d32ffda
    Thread-29  执行任务
    Thread-26  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-29  完成任务,释放锁
    Thread-29 完成推出
    Thread-23  获取锁:Thread-23:8acf6150-f1a5-4a1f-9bab-b8b589505a68
    Thread-23  执行任务
    Thread-23  完成任务,释放锁
    Thread-23 完成推出
    Thread-22  获取锁:Thread-22:6a37a009-bd44-4fb9-8252-65b4b0518b32
    Thread-22  执行任务
    Thread-22  完成任务,释放锁
    Thread-22 完成推出
    Thread-19  获取锁:Thread-19:ddcdc9ab-4e65-44ce-a0a8-b6574c628e7f
    Thread-19  执行任务
    Thread-18  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-19  完成任务,释放锁
    Thread-19 完成推出
    Thread-3  获取锁:Thread-3:6f0fd9a7-0027-4813-9eb9-459363c9feab
    Thread-3  执行任务
    Thread-11  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-3  完成任务,释放锁
    Thread-3 完成推出
    Thread-15  获取锁:Thread-15:c5778953-b19a-4079-a431-5cd681111a40
    Thread-15  执行任务
    Thread-39  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-14  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-15  完成任务,释放锁
    Thread-10  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-7  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-15 完成推出
    Thread-35  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-6  获取锁:Thread-6:0a81dadb-d7aa-4b7e-b389-09b8ca1b9a8e
    Thread-6  执行任务
    Thread-36  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-6  完成任务,释放锁
    Thread-6 完成推出
    Thread-31  获取锁:Thread-31:9c61f68b-e87c-4ea2-80b0-f8b6306691b4
    Thread-31  执行任务
    Thread-32  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-28  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-31  完成任务,释放锁
    Thread-25  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-27  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-31 完成推出
    Thread-71  获取锁:Thread-71:25934a78-73d2-4376-8749-059a0a1fe84e
    Thread-71  执行任务
    Thread-72  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-69  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-71  完成任务,释放锁
    Thread-71 完成推出
    Thread-67  获取锁:Thread-67:bf99b1a8-d867-4aba-96cd-eef02fde201f
    Thread-67  执行任务
    Thread-68  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-67  完成任务,释放锁
    Thread-67 完成推出
    Thread-62  获取锁:Thread-62:360af97e-4d35-4875-b496-a881742f7d91
    Thread-62  执行任务
    Thread-62  完成任务,释放锁
    Thread-62 完成推出
    Thread-95  获取锁:Thread-95:5b6bdd0d-0242-4fae-87de-cd3ff26c10f2
    Thread-95  执行任务
    Thread-95  完成任务,释放锁
    Thread-95 完成推出
    Thread-8  获取锁:Thread-8:3c6f02a4-2044-4934-874d-de1ae227f741
    Thread-8  执行任务
    Thread-8  完成任务,释放锁
    Thread-8 完成推出
    Thread-21  获取锁:Thread-21:858dc555-19f9-423d-9384-3bb626ec2faf
    Thread-21  执行任务
    Thread-21  完成任务,释放锁
    Thread-21 完成推出
    Thread-51  获取锁:Thread-51:3e56e439-e529-4c3b-989e-ba2de1bdac7c
    Thread-51  执行任务
    Thread-44  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-0  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-52  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-17  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-51  完成任务,释放锁
    Thread-51 完成推出
    Thread-45  获取锁:Thread-45:f0c66416-a218-492b-93e0-376ea2cafe75
    Thread-45  执行任务
    Thread-45  完成任务,释放锁
    Thread-4  获取锁:Thread-4:580b23ff-193c-45e4-ac38-3e69ed4d43a1
    Thread-4  执行任务
    Thread-45 完成推出
    Thread-59  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-4  完成任务,释放锁
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-96  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-4 完成推出
    Thread-61  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-66  获取锁:Thread-66:4b665b15-d869-4cb2-b9bd-7dc6cfd041cf
    Thread-66  执行任务
    Thread-76  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-66  完成任务,释放锁
    Thread-66 完成推出
    Thread-58  获取锁:Thread-58:1ed59868-5df6-4ace-949a-d7e2b6251b7a
    Thread-58  执行任务
    Thread-58  完成任务,释放锁
    Thread-58 完成推出
    Thread-83  获取锁:Thread-83:5f0ed941-a213-4e8b-9f48-1e9c11a224f2
    Thread-83  执行任务
    Thread-91  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-92  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-83  完成任务,释放锁
    Thread-83 完成推出
    Thread-88  获取锁:Thread-88:85981817-d90a-46f6-bb08-fee48e60325e
    Thread-88  执行任务
    Thread-93  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-88  完成任务,释放锁
    Thread-88 完成推出
    Thread-89  获取锁:Thread-89:8c09c432-f6cf-4224-9af8-6da23fe41569
    Thread-89  执行任务
    Thread-87  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-89  完成任务,释放锁
    Thread-89 完成推出
    Thread-82  获取锁:Thread-82:45f1efe0-a664-439c-ba87-291ce7869414
    Thread-90  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-82  执行任务
    Thread-86  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-82  完成任务,释放锁
    Thread-82 完成推出
    Thread-37  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-46  获取锁:Thread-46:e0189b23-fc71-4218-9727-d34a00b5bfa2
    Thread-46  执行任务
    Thread-41  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-46  完成任务,释放锁
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-46 完成推出
    Thread-38  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-26  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-30  获取锁:Thread-30:d34fd4ed-c251-42f8-a322-cb925c523368
    Thread-30  执行任务
    Thread-30  完成任务,释放锁
    Thread-30 完成推出
    Thread-18  获取锁:Thread-18:c51f402e-057f-4617-a177-36f7f38ffaaa
    Thread-18  执行任务
    Thread-18  完成任务,释放锁
    Thread-18 完成推出
    Thread-11  获取锁:Thread-11:73e867a1-e30e-4e73-85ae-e6e69ccca673
    Thread-11  执行任务
    Thread-11  完成任务,释放锁
    Thread-11 完成推出
    Thread-39  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-14  获取锁:Thread-14:10fadfea-e7b2-44de-93cb-1abffec78afc
    Thread-14  执行任务
    Thread-14  完成任务,释放锁
    Thread-35  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-14 完成推出
    Thread-10  获取锁:Thread-10:e04f76dc-3abb-461f-97e7-1db5e3e6019e
    Thread-10  执行任务
    Thread-32  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-7  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-25  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-27  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-36  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-28  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-72  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-10  完成任务,释放锁
    Thread-69  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-68  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-10 完成推出
    Thread-17  获取锁:Thread-17:e31fd0f7-290f-4d4e-95e8-3c490bc9adeb
    Thread-17  执行任务
    Thread-44  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-52  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-17  完成任务,释放锁
    Thread-0  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-17 完成推出
    Thread-59  获取锁:Thread-59:2a64c175-c459-48ce-8e89-75b7fd50fcc8
    Thread-59  执行任务
    Thread-96  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-59  完成任务,释放锁
    Thread-61  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-76  获取锁:Thread-76:f752bbd0-68dc-4503-8adb-a8219823fde2
    Thread-76  执行任务
    Thread-59 完成推出
    Thread-76  完成任务,释放锁
    Thread-76 完成推出
    Thread-91  获取锁:Thread-91:47f7f7fa-2ba4-4211-b34d-818c871f30cd
    Thread-91  执行任务
    Thread-92  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-91  完成任务,释放锁
    Thread-91 完成推出
    Thread-93  获取锁:Thread-93:2418d59d-2152-4699-ba7d-d80a236ea396
    Thread-93  执行任务
    Thread-93  完成任务,释放锁
    Thread-93 完成推出
    Thread-87  获取锁:Thread-87:e52f78af-b61c-4bfb-89b5-1444fe232799
    Thread-87  执行任务
    Thread-87  完成任务,释放锁
    Thread-87 完成推出
    Thread-90  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-86  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-2
    Thread-37  获取锁:Thread-37:91f7efed-0270-4f74-a4dc-929279518ad0
    Thread-37  执行任务
    Thread-37  完成任务,释放锁
    Thread-26  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-41  获取锁:Thread-41:284d7c37-4a2d-475d-be02-78e95b2e6242
    Thread-41  执行任务
    Thread-38  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-1
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:-1
    Thread-37 完成推出
    Thread-41  完成任务,释放锁
    Thread-41 完成推出
    Thread-39  获取锁:Thread-39:d68efb03-f0b4-4e56-9a47-3863954c726d
    Thread-39  执行任务
    Thread-39  完成任务,释放锁
    Thread-39 完成推出
    Thread-35  获取锁:Thread-35:2be7800d-62bb-4090-8fa7-a8bde5817e7f
    Thread-35  执行任务
    Thread-35  完成任务,释放锁
    Thread-35 完成推出
    Thread-7  获取锁:Thread-7:053755f4-6af9-4d59-838f-344d2345667e
    Thread-7  执行任务
    Thread-7  完成任务,释放锁
    Thread-7 完成推出
    Thread-69  获取锁:Thread-69:1884f542-e2fd-40f3-85f7-ab099f9c81e4
    Thread-69  执行任务
    Thread-69  完成任务,释放锁
    Thread-69 完成推出
    Thread-28  获取锁:Thread-28:d0d446ee-0cc8-46b5-8266-0af09ad51135
    Thread-28  执行任务
    Thread-28  完成任务,释放锁
    Thread-28 完成推出
    Thread-27  获取锁:Thread-27:7f50d3dd-642b-4904-80e1-86942db672da
    Thread-27  执行任务
    Thread-27  完成任务,释放锁
    Thread-27 完成推出
    Thread-25  获取锁:Thread-25:aa0faa33-24c6-4e0a-b564-308fde0af9a4
    Thread-25  执行任务
    Thread-25  完成任务,释放锁
    Thread-32  获取锁:Thread-32:1ba54955-4b48-442d-850e-806f894e64b0
    Thread-32  执行任务
    Thread-36  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-68  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-72  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-25 完成推出
    Thread-32  完成任务,释放锁
    Thread-32 完成推出
    Thread-52  获取锁:Thread-52:6bc5e341-83c9-4320-8dcf-87f3f7c297f3
    Thread-52  执行任务
    Thread-44  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-52  完成任务,释放锁
    Thread-52 完成推出
    Thread-0  获取锁:Thread-0:f8562368-1559-4204-87a1-c3b1221d574b
    Thread-0  执行任务
    Thread-0  完成任务,释放锁
    Thread-0 完成推出
    Thread-96  获取锁:Thread-96:cfacee5f-3b8e-4ae9-9442-c88cf28583b5
    Thread-96  执行任务
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-61  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-96  完成任务,释放锁
    Thread-96 完成推出
    Thread-92  获取锁:Thread-92:756c7374-894e-4e90-a003-cbd2629ee8bc
    Thread-92  执行任务
    Thread-92  完成任务,释放锁
    Thread-92 完成推出
    Thread-86  获取锁:Thread-86:ffcda81d-958d-468c-848e-69bcb0752c03
    Thread-86  执行任务
    Thread-90  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-86  完成任务,释放锁
    Thread-86 完成推出
    Thread-38  获取锁:Thread-38:8e91d124-d73a-44ca-8e2f-23803c5a451f
    Thread-38  执行任务
    Thread-26  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-38  完成任务,释放锁
    Thread-38 完成推出
    Thread-36  获取锁:Thread-36:98374a8d-1dda-4763-9420-9b477725ba37
    Thread-36  执行任务
    Thread-36  完成任务,释放锁
    Thread-36 完成推出
    Thread-72  获取锁:Thread-72:439e8e70-a1d3-4017-8841-3da6de42d24b
    Thread-72  执行任务
    Thread-72  完成任务,释放锁
    Thread-72 完成推出
    Thread-68  获取锁:Thread-68:c070d2ba-ab20-43b6-ad68-01614702ba3c
    Thread-68  执行任务
    Thread-68  完成任务,释放锁
    Thread-68 完成推出
    Thread-44  获取锁:Thread-44:0b9dbf04-7506-4b3d-91a4-168c2381f062
    Thread-44  执行任务
    Thread-44  完成任务,释放锁
    Thread-44 完成推出
    Thread-61  获取锁:Thread-61:66815858-6673-405f-acc8-ee78aad0e3ab
    Thread-61  执行任务
    Thread-63  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-61  完成任务,释放锁
    Thread-61 完成推出
    Thread-90  获取锁:Thread-90:17c4cdff-2127-4def-b97d-c78819e0d3de
    Thread-90  执行任务
    Thread-90  完成任务,释放锁
    Thread-90 完成推出
    Thread-26  获取锁:Thread-26:260c89a7-4cfd-4cf5-96ef-13f2e851c3fd
    Thread-26  执行任务
    Thread-33  lock_withTimeout获取锁竞争失败,休息1秒,继续尝试获取,锁ttl剩余:100
    Thread-26  完成任务,释放锁
    Thread-26 完成推出
    Thread-63  获取锁:Thread-63:65832aa2-2e31-439b-a76b-590914d34d6c
    Thread-63  执行任务
    Thread-63  完成任务,释放锁
    Thread-63 完成推出
    Thread-33  获取锁:Thread-33:26b2d195-b9c3-41cb-be38-0081fcf5ae5a
    Thread-33  执行任务
    Thread-33  完成任务,释放锁
    Thread-33 完成推出
  • 相关阅读:
    C++中struct和class的区别
    关于LBP特征等价模式的解释
    常用的颜色模型
    flask类装饰器
    flask的方法视图
    flask standrad class 使用
    flask add_url_rule的使用
    模板的继承
    模板变量设置 set 和 with
    模版include的用法
  • 原文地址:https://www.cnblogs.com/jiangtao1218/p/9349788.html
Copyright © 2020-2023  润新知