java ReentrantLock的重入测试
作者:互联网
2022-05-25

本教程操作环境:windows7系统、java10版,DELL G3电脑。
1、概念
可重入的读写锁,读写锁内部维护了一个ReadLock和一个WriteLock,底层还是AQS,但是AQS只有一个state状态量,如何同时控制读和写呢,这里使用了state(int)的高16位表示读状态,低16为表示写,高16位的值代表获取读锁的线程数,低16位代表写锁的可重入数。
2、原理
利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似
3、实例
public class ReentrantDemo implements Runnable {
Lock lock = new ReentrantLock();
@Override
public void run() {
set();
}
public void set() {
try {
lock.lock();
System.out.println("set 方法");
get();
} catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();// 必须在finally中释放
}
}
public void get() {
try {
lock.lock();
System.out.println("get 方法");
} catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}
public static void main(String[] args) {
ReentrantDemo reentrantDemo = new ReentrantDemo();
new Thread(reentrantDemo).start();
}
}以上就是java ReentrantLock的重入测试,相信看完全篇的文章后,大家已经能够初步能明白ReentrantLock的使用,也可以在课后对重入锁的相关内容进行拓展。
相关标签:
java
ReentrantLock
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
【SpringAIAlibaba新手村系列】(18)Agent 智能体与今日菜单应用
04/14
CompletableFuture 异步编程全解:核心能力、编排方案、异常处理与超时控制
04/14
【从0到1构建一个ClaudeAgent】规划与协调-技能
04/14
Spring AI Advisors:从链式增强到递归顾问
04/14
ReentrantLock 与 synchronized对比
04/14
VS Code Java开发配置与使用经验分享
04/14
2026年Java AI开发实战:Spring AI完全指南
04/13
【从0到1构建一个ClaudeAgent】规划与协调-TodoWrite
04/13
SpringBoot 4 + Spring Security 7 + Vue3 前后端分离项目设计最佳实践
04/13
让AI不再"一本正经胡说八道":Spring AI RAG与VectorStore源码全解
04/13
AI精选
