首页 > 基础资料 博客日记
java基础----AQS的问题答疑
2023-07-27 18:06:27基础资料围观469次
Java资料网推荐java基础----AQS的问题答疑这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣
1. 公平锁和非公平锁如何理解?
公平锁在尝试获取锁的时候会查看等待队列是否为空,如果不是空,直接返回失败。而非公平锁进来直接判断状态是否是0,如果是0就抢占锁。
2. 每次被加入到等待队列的线程都会执行获取锁的操作吗?
不是,只有前驱是头节点的节点线程才会去执行tryAcquire方法去尝试获取锁。
3. 基本流程通俗易懂的讲出来?
共享资源假设为S。多个线程抢占。
排他锁:每次只有一个线程能获取到资源,其他的线程就被加入到等待队列中,等待获取到锁的线程执行完去唤醒他,如果加入顺序是A->B->C->D,那么唤醒顺序就是当前线程唤醒A,A唤醒B,B唤醒C,C唤醒D。
共享锁:每次可以有多个线程获取到资源,但是资源有数量限制,比如信号量里,资源是信号量数,比如是5,那么可以有5个线程都拿到资源可以执行,多余的需要被放到等待队列中排队,等有空闲的信号量时候,唤醒在排队的线程。如果是闭锁,主线程会阻塞在等待队列中,一直到状态被减到0才能获取锁。继续执行。
文章来源:https://www.cnblogs.com/ygliu/p/15676026.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?