zoukankan      html  css  js  c++  java
  • DB Locker

    LockType public void lock(LockType lockType) {             
            try {
                entityManager.find(LockEntity.class, lockType, LockModeType.PESSIMISTIC_WRITE);
            } catch (Exception e) {
                Logger.Error("Failed to find LockEntity by LockType(" + lockType.name() + ") because of DB error.");
                Logger.Debug("ConfigDbManagerImpl:lock", e);
                DBAlarmHelper.raiseAlarm(e);
                throw e;
            }
            DBAlarmHelper.clearAlarm();
    }
    public void test() throws Exception {
            locker.lock(
     
    LockType.AddMessage );
            ...........
            ...........

        当第一个线程进入test()方法时, 会调用lock方法,从而使用悲观锁锁住该列。 当第二个线程又进入test()方法时, 也想要尝试会的AddMessage的这列,这是就需要等待第一个线程退出test()方法,才能获得该锁。

  • 相关阅读:
    Spring加载xsd引起的问题小记
    kafka配置参数
    nginx常见内部参数,错误总结
    从毕业到现在的总结
    storm坑之---传递对象
    Java多线程读取大文件
    webpack4.0.1安装问题及解决方法
    git入门篇shell
    less教程
    原生js的ajax请求
  • 原文地址:https://www.cnblogs.com/zhonghan/p/2630915.html
Copyright © 2011-2022 走看看