![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 73
并发编程
让你三行代码QAQ
有道无术,术尚可求
展开
-
ReentrantLock源码
公平锁和非公平锁释放锁的流程一样,调用sync中的tryRelease方法。NonfairSync非公平锁中,Sync中的默认实现。FairSync公平锁中。默认构造使用非公平锁。原创 2024-07-21 21:23:14 · 140 阅读 · 0 评论 -
AQS源码
假设A、B、C三个线程,A线程持有锁,B线程先来获取锁,然后C线程获取锁。原创 2024-07-21 21:22:29 · 265 阅读 · 0 评论 -
synchronized详解
如果在一个循环内部使用synchronized,频繁的获取/释放锁消耗资源。锁膨胀就是将synchronized放到循环体外部,这样就获取/释放一次锁。可以理解为一个临界资源,在同一时间只能有一个线程操作它,实现线程之间互斥的效果。在synchronized修饰的代码块中,如果不存在操作临界资源的情况,触发锁消除,即synchronized无效。在jdk1.6之前,线程在获取不到锁后,立即挂起线程。在创建对象作为锁的时候,会在栈中生成对象的引用,引用指向堆空间,有关锁的内容。原创 2024-07-15 21:21:52 · 300 阅读 · 0 评论 -
并发编程-锁的分类
假设A线程持有锁,B线程正在等待锁,这个时候C线程来了。原创 2024-07-15 21:19:33 · 222 阅读 · 0 评论 -
多线程之线程基础
进程(process)和线程(thread):例如:在我们使用视频app看视频的时候,打开一个app就是运行一个进程,而我们同时可以看到图像、音频、弹幕等等,其中的图像、音频、弹幕分别是一个线程在同时执行任务。进程是程序执行的一个过程,动态的,是系统资源分配的最小单位;一个进程包含至少一个或包含多个线程,线程是cup调度和执行的最小单位;原创 2023-03-24 17:55:27 · 244 阅读 · 0 评论 -
多线程之线程池
线程池的本质是池化技术,所谓池化技术,是程序在运行时会占用资源,为了优化资源的使用使用池化技术。比如JDBC连接池,由于和数据库建立连接和关闭时比较消耗资源,所以事先准备好资源。线程池的优点:降低资源消耗,提高响应速度,而且方便管理,最重要的是线程服用,可以控制并发数量。原创 2022-09-22 22:36:27 · 193 阅读 · 0 评论