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()方法,才能获得该锁。

  • 相关阅读:
    Android布局优化
    Handler原理
    最少钱币数:
    ASCII码排序
    Fibonacci数
    奇偶数分离
    认识Dom
    js浏览器对象
    返回/设置时间方法与 Math对象
    window.open
  • 原文地址:https://www.cnblogs.com/zhonghan/p/2630915.html
Copyright © 2011-2022 走看看