高并发与多线程
文章平均质量分 77
.idea
SWPU_嵌入式团队
展开
-
造轮子系列(二)自定义一个Java独占锁理解ReentrantLock锁原理
一.自定义MyLock锁 ReentrantLock锁的同步控制基础来自于AbstractQueuedSynchronizer类(AQS)。 通过维护state状态位来控制锁的占用情况。 设计了一个FIFO特点的队列实现对尝试获取锁的线程的缓冲。 创建condition条件变量完成对等待线程的阻塞与唤醒。 首先创建一个继承自AbstractQueuedSynchronizer类的同步器类: package mylock; import java.util.concurrent.locks.Abstra原创 2021-03-08 11:57:21 · 292 阅读 · 4 评论 -
造轮子系列(一)自定义Java线程池的简单实现理解ThreadPoolExecutor
一.概述 “池化”思想的设计减少了线程创建与销毁的资源损耗,提高了任务的响应速度,同时还可以提供一些额外的功能,例如定制线程池和阻塞队列都已满时的拒绝策略。 ThreadPoolExecutor做为Java线程池的核心实现类,继承关系如下: 顶层接口Executor提供了将任务提交与任务执行解耦的思想,下面的接口与实现类在此基础上进行完善,提供线程池自身状态的维护和线程与任务的管理。 二.基本设计思想 Java线程池运用生产者消费者的设计模式,设计用于缓存任务的阻塞队列。用户发起任务提交,如果在核心线程池原创 2021-03-06 14:33:09 · 228 阅读 · 1 评论 -
对黑马视频synchronized原理进阶与优化实验结果的一点疑惑与解释
前置理解: Java对象头中Mark Word组成 轻量级锁、CAS(Compare and Swap) 偏向锁(锁重入下轻量级锁对CAS的优化) 重量级锁(锁膨胀下轻量级锁的选择) 代码: /** * @author 24208 */ public class Main01 { static Thread t1, t2, t3; public static void main(String[] args) throws InterruptedException {原创 2021-02-16 20:02:16 · 214 阅读 · 0 评论