高并发与多线程
文章平均质量分 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 · 229 阅读 · 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 评论