zoukankan      html  css  js  c++  java
  • 读写锁ReadWriteLock

    写锁和读锁成对出现,保证锁的是同一份资源

    写锁正在写入的过程中,读锁获取不到,一直等待
    写数据的时候,读实现不可读
    适用于读多写少的场景

    import sigma.resource.sync.model.DevopsData;
    import sigma.resource.sync.model.JoneData;
    import java.util.Map;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;
    
    public class SourceCache {
    
        private static final ReadWriteLock joneReadWriteLock = new ReentrantReadWriteLock();
        private static final Lock joneReadLock = joneReadWriteLock.readLock();
        private static final Lock joneWriteLock = joneReadWriteLock.writeLock();
    
        /**
         * 系统名, jonedata的映射map
         */
        private static Map<String,JoneData> joneDataCache;
    
        public static Map<String, JoneData> getJoneDataCache() {
            joneReadLock.lock();
            try {
                return joneDataCache;
            }finally {
                joneReadLock.unlock();
            }
        }
    
        public static void setJoneDataCache(Map<String, JoneData> joneDataCache) {
            joneWriteLock.lock();
            try {
                SourceCache.joneDataCache = joneDataCache;
            }finally {
                joneWriteLock.unlock();
            }
        }
    }
    
    
    原创:做时间的朋友
  • 相关阅读:
    Excel表格函数逻辑排错
    MobaXterm体验最好的SSH客户端
    Excel中的常用函数
    Shell 知识点2020
    Linux 知识点2020
    Python知识点2020
    es6 模版字符串
    es6对象定义简写
    es6解构赋值
    ES6 let const关键字
  • 原文地址:https://www.cnblogs.com/PythonOrg/p/14511477.html
Copyright © 2011-2022 走看看