java读写锁是什么

美女程序员鼓励师

1、读写锁将一个资源(如文件)的访问分为两个锁,一个读写锁。

2、因为读写锁,多个线程之间的读写操作才不会发生冲突。

3、ReadWriteLock是读写锁,它是一个界面,RentrantReadWriteLock实现了这个界面。

实例

public class CacheDemo {

    private Map<String, Object> cache = new HashMap<>();

    private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();

 

    public static void main(String[] args) {

 

 

    }

 

    public Object getData(String key) {

 

        Object value = null;

        //首先开启读锁,从缓存中去取

        readWriteLock.readLock().lock();

        try {

            value = cache.get(key);

            //如果缓存中没有释放读锁,上写锁

            if (value == null) {

                //对应queryDB()

                readWriteLock.readLock().unlock();

                //读锁必须unlock之后才能获取写锁

                readWriteLock.writeLock().lock();

                try {

                    //对应queryDB()

                    value = queryDB();

                } finally {

                    //释放写锁

                    readWriteLock.writeLock().unlock();

                }

                //然后再上读锁

                readWriteLock.readLock().lock();

            }

        } finally {

            //最后释放读锁

            readWriteLock.readLock().unlock();

        }

        return value;

 

    }

 

    public Object queryDB() {

        return "aaaa";

    }

}

以上就是java读写锁的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

以上是 java读写锁是什么 的全部内容, 来源链接: utcz.com/z/546398.html

回到顶部