• 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();
    }
    
    原创:做时间的朋友
  • 相关阅读:
    C# Console.Read()和Console.ReadLine()的区别
    C#获取项目程序及运行路径的方法
    Thread理解
    ENVI 监督分类Max stdev from Mean 参数IDL中的设置
    C# 插件开发学习实例
    利用动软代码器自动生存三层架构
    结构体的对齐
    链表分类及应用
    指针
    双向循环链表
  • 原文地址:https://www.cnblogs.com/PythonOrg/p/14509925.html
Copyright © 2020-2023  润新知