Heim > Java > javaLernprogramm > Was ist das Konzept der Java-Lese-/Schreibsperre?

Was ist das Konzept der Java-Lese-/Schreibsperre?

WBOY
Freigeben: 2023-05-13 23:01:04
nach vorne
832 Leute haben es durchsucht

1. Die Lese-/Schreibsperre unterteilt den Zugriff auf eine Ressource (z. B. eine Datei) in zwei Sperren, eine Lese-/Schreibsperre.

2. Aufgrund der Lese-/Schreibsperre kommt es nicht zu Konflikten zwischen Lese- und Schreibvorgängen zwischen mehreren Threads.

3. ReadWriteLock ist eine Lese-/Schreibsperre. Es handelt sich um eine Schnittstelle.

Instanzen

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";
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist das Konzept der Java-Lese-/Schreibsperre?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage