zoukankan      html  css  js  c++  java
  • ReentrantLock修饰类文件,实现按类获取锁的逻辑

    1.ReentrantLock 给类文件加锁,实现类似synchronized(class)的功能

    核心是类文件中,使用static修饰的reentrantLock对象

    public class SourceCache {
    
        public static final Lock reentrantLock = new ReentrantLock();
    
        /**
         * 系统名,devopsdata的映射map
         */
        private static Map<String,DevopsData> devopsDataCache;
    
        /**
         * 系统名, jonedata的映射map
         */
        private static Map<String,JoneData> joneDataCache;
    
        public static Map<String, DevopsData> getDevopsDataCache() {
            return devopsDataCache;
        }
    
        public static Map<String, JoneData> getJoneDataCache() {
            return joneDataCache;
        }
    
        public static void setDevopsDataCache(Map<String, DevopsData> devopsDataCache) {
            reentrantLock.lock();
            try {
                SourceCache.devopsDataCache = devopsDataCache;
            }finally {
                reentrantLock.unlock();
            }
        }
    
        public static void setJoneDataCache(Map<String, JoneData> joneDataCache) {
            reentrantLock.lock();
            try {
                SourceCache.joneDataCache = joneDataCache;
            }finally {
                reentrantLock.unlock();
            }
        }
    
    }
    
    

    2.加锁,执行写入,解锁三部曲

    reentrantLock.lock();
    try {
        SourceCache.joneDataCache = joneDataCache;
    }finally {
        reentrantLock.unlock();
    }
    
    原创:做时间的朋友
  • 相关阅读:
    [NOIp2009] $Hankson$ 的趣味题
    [洛谷P1730] 最小密度路径
    [NOIp2015] 运输计划
    [NOIp2012] 借教室
    [NOIp2012] 国王游戏
    [NOIp2016] 蚯蚓
    [洛谷P1272] 重建道路
    [洛谷P1273] 有线电视网
    [ZJOI2010] 数字计数
    ☆ [HDU2089] 不要62「数位DP」
  • 原文地址:https://www.cnblogs.com/PythonOrg/p/14509925.html
Copyright © 2011-2022 走看看