
JUC
文章平均质量分 87
读书人钟同学
成都大学计科DamsonZ
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC——AQS原理与ReentrantLock原理详解
接下来 Thread-0 竞争成功,permits 再次设置为 0,设置自己为 head 节点,断开原来的 head 节点,unpark 接下来的 Thread-3 节点,但由于 permits 是 0,因此 Thread-3 在尝试不成功后再次进入 park 状态。// 如果 head.waitStatus == 0 ==> Node.PROPAGATE。[100%, 100%, 100%, 100%, 100%, 100%, 100%, 100%, 100%, 100%]欢迎来到英雄联盟!原创 2023-04-19 18:36:18 · 163 阅读 · 0 评论 -
JUC——深入解析共享模型之工具
线程池自定义线程池步骤1:自定义拒绝策略接口@FunctionalInterface // 拒绝策略步骤2:自定义任务队列// 1. 任务队列// 2. 锁// 3. 生产者条件变量// 4. 消费者条件变量// 5. 容量// 带超时阻塞获取try {// 将 timeout 统一转换为 纳秒try {// 返回值是剩余时间return t;// 阻塞获取try {try {return t;// 阻塞添加。原创 2023-04-11 23:43:01 · 175 阅读 · 0 评论 -
JUC——深入解析共享模型之内存
抛开以下 happens-before 规则,JMM 并不能保证一个线程对共享变量的写,对于其它线程对该共享变量的读可见。线程解锁 m 之前对变量的写,对于接下来对 m 加锁的其它线程对该变量的读可见x = 10;线程对 volatile 变量的写,对接下来其它线程对该变量的读可见x = 10;线程 start 前对变量的写,对该线程开始后对该变量的读可见x = 10;原创 2023-04-11 23:41:10 · 109 阅读 · 0 评论 -
JUC——深入解析共享模型之管程
相对于 synchronized 它具备如下特点可中断可以设置超时时间可以设置为公平锁(解决线程饥饿问题)支持多个条件变量与 synchronized 一样,都支持可重入语法:// 获取锁try {// 临界区// 释放锁。原创 2023-04-11 23:37:23 · 190 阅读 · 0 评论 -
JUC——基本概念
如果是串行执行,那么总共花费的时间是 10 + 11 + 9 + 1 = 31ms,但如果是四核 cpu,各个核心分别使用线程 1 执行计算 1,线程 2 执行计算 2,线程 3 执行计算 3,那么 3 个线程是并行的,花费时间只取决于最长的那个线程运行的时间,即 11ms 最后加上汇总时间只会花费 12ms。线程优先级会提示(hint)调度器优先调度该线程,但它仅仅是一个提示,调度器可以忽略它如果 cpu 比较忙,那么优先级高的线程会获得更多的时间片,但 cpu 闲时,优先级几乎没作用。原创 2023-04-11 23:34:15 · 132 阅读 · 0 评论