APP下载
报价宝  ›  科技  › 

Java可重入读写锁实现:ReentrantReadWriteLock

报价宝 来源:baojiabao.com 发布时间:2019-07-06 02:51:00 09月11日更新
报价宝综合消息Java可重入读写锁实现:ReentrantReadWriteLock

概述

ReentrantReadWriteLock包含读写两把锁,如下:// 写锁

public ReentrantReadWriteLock.WriteLock writeLock() { return writerLock; }

// 读锁

public ReentrantReadWriteLock.ReadLock readLock() { return readerLock; }

对同一执行绪而言,读,写读(先写后读),写写是共享的,读写(先读后写)是互斥的;对不同执行绪而言,读是共享的,读写,写读,写写是互斥的。读写锁

写锁的请求:(1)当前没有执行绪在执行读写,则可以进行写操作;

(2)当前存线上程在进行写操作,当前请求写操作的执行绪就是当前正在进行写操作的执行绪时,才能继续发起写请求;如果当前是其他执行绪在写,则当前执行绪无法请求写;

(3)当前不存在写,但是存线上程在读,则无法请求写。

读锁的请求:当前不存在写的执行绪,或者当前正在写的执行绪就是当前请求读的执行绪,则可以成功请求读;如果当前存在其他执行绪在写,则无法请求读。

总结

对于写的请求,要么当前不存线上程在进行读写,要么是该请求写的执行绪在写,则可以成功获取写锁进行写操作,即写对同一执行绪是可重入的。如果当前存在其他执行绪在写,或者存线上程(当前或者其他执行绪)在读,则无法获取写锁进行写操作。即读写是互斥的,同一执行绪的写是可以共享的,可重入的。对于读的请求,如果当前不存线上程在写,或者当前在写的执行绪就是该请求读的执行绪自身,则可以成功获取读锁进行读操作;如果当前存在其他执行绪在写,则无法成功执行读请求。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 报价宝 笔记本价格 笔记本电脑价格 电视机价格 小米手机价格