java读写锁怎么用
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇"java读写锁怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"java读写
千家信息网最后更新 2025年12月01日java读写锁怎么用
这篇"java读写锁怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"java读写锁怎么用"文章吧。
1、公平选择性,支持非公平和公平锁获取,吞吐量不公平优于公平。
2、重进入,读锁和写锁都支持线程重进入。
3、锁降级,遵循获取写锁、获取读锁、释放写锁的顺序,写锁可以降级为读锁。
实例
public class ReadWriteLockTest { public static void main(String[] args) { final Queue q = new Queue(); for (int i = 0; i < 3; i++) { new Thread() { @Override public void run() { while (true) { q.get(); } } }.start(); new Thread() { @Override public void run() { while (true) { q.put(new Random().nextInt(10000)); } } }.start(); } }} class Queue { //共享数据,只能有一个线程能写该数据,但可以有多个线程同时读该数据。 ReadWriteLock rwl = new ReentrantReadWriteLock(); private Object data = null;//共享数据,只能有一个线程能写数据,但可以有多个线程读该数据 public void get() { //上读锁,其他线程只能读不能写 rwl.readLock().lock(); try { System.out.println(Thread.currentThread().getName() + " be ready to read data!"); Thread.sleep((long) (Math.random() * 1000)); System.out.println(Thread.currentThread().getName() + " have read data :" + data); } catch (InterruptedException e) { e.printStackTrace(); } finally { rwl.readLock().unlock(); } } public void put(Object data) { //上写锁,不允许其他线程读也不允许写 rwl.writeLock().lock(); try { System.out.println(Thread.currentThread().getName() + " be ready to write data!"); Thread.sleep((long) (Math.random() * 1000)); this.data = data; System.out.println(Thread.currentThread().getName() + " have write data: " + data); } catch (InterruptedException e) { e.printStackTrace(); } finally { rwl.writeLock().unlock(); } }}以上就是关于"java读写锁怎么用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
线程
数据
内容
多个
文章
知识
篇文章
支持
价值
同时
吞吐量
大部分
实例
就是
更多
步骤
知识点
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
滑县英民中学网络安全宣传
数据库自动化工程师招聘
在网络安全中中断是指
批量截取电子表格数据库
数据库sql是什么
数据库计算工具下载
网络技术指哪些
探测服务器内网信息的漏洞
南宁网络安全宣传周宣传主题
linux服务器如何设置ftp
软件开发如何能准确抓住需求
数据库运行哪两个服务
北京靠谱前程网络技术
乃心虎网络技术有限公司
济南成人软件开发培训机构
小白菜软件开发
炫舞服务器进不去
省心软件无法识别的数据库格式
网络安全 理清底数
贵州速风互联网科技有限公司
网络安全立案要求
数据库sql是什么
易宝科技互联网
软件开发由于没有付费停用损失
网络安全管理意识低
计算机与网络技术自考真题
苹果笔记本适合软件开发的人
锐捷宽带服务器名称怎么设置
网络安全教育课ppt
大学网络安全体系建设方案