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();
    }
    
    原创:做时间的朋友
  • 相关阅读:
    操作系统要点总结
    ARP的通信过程
    判断网段、子网、网络号
    C++要点总结
    枚举类型
    C指针总结
    C运算符总结
    替换空格
    WCF编写时候的测试
    WCF创建到使用到发布
  • 原文地址:https://www.cnblogs.com/PythonOrg/p/14509925.html
Copyright © 2011-2022 走看看