![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
并发编程
多线程并发
mhHao
Talk less, do more.
展开
-
https://www.cnblogs.com/yangxd1994/p/12083014.html
https://www.cnblogs.com/yangxd1994/p/12083014.html转载 2020-06-19 19:21:16 · 2689 阅读 · 0 评论 -
美团技术团队--从ReentrantLock的实现看AQS的原理及应用
前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过ReentrantLock的基本特性和ReentrantLock与AQS的关联,来深入解读AQS相关独占锁...转载 2020-02-14 15:16:20 · 662 阅读 · 0 评论 -
jdk源码剖析: 对象内存布局、synchronized原理
正文很多人一提到锁,自然第一个想到了synchronized,但一直不懂源码实现,现特地追踪到C++层来剥开synchronized的面纱。网上的很多描述大都不全,让人看了不够爽,看完本章,你将彻底了解synchronized的核心原理。回到顶部一、启蒙知识预热开启本文之前先介绍2个概念1.1.cas操作为了提高性能,JVM很多操作都依赖CAS实现,一种乐观锁的实现。本文锁优化中大量...转载 2019-12-17 14:18:14 · 224 阅读 · 0 评论 -
浅谈偏向锁、轻量级锁、重量级锁
为了换取性能,JVM在内置锁上做了非常多的优化,膨胀式的锁分配策略就是其一。理解偏向锁、轻量级锁、重量级锁的要解决的基本问题,几种锁的分配和膨胀过程,有助于编写并优化基于锁的并发程序。内置锁的分配和膨胀过程较为复杂,限于时间和精力,文中该部分内容是根据网上的多方资料整合而来;仅为方便查阅,后面继续分析JVM源码的时候也有个参考。如果对各级锁已经有了基本了解,读者大可跳过此文。隐藏在内置锁下的基...转载 2019-09-28 19:54:29 · 115 阅读 · 0 评论 -
深入分析java线程池的实现原理
2017/04/23 于复兴中路裸心社回头看看之前写的这篇文章,印象中读源码的兴趣源头似乎来自于Java线程池,当山头被一座一座攻克时,你会发现掉到一个大坑中,因为不懂的领域的实在太多。快关注我的公众号!前言线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处:1、降低资源消耗;2、提高响应速度;3、...转载 2019-09-25 17:50:20 · 70 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
今天发一篇"水文",可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清...转载 2019-08-18 10:50:32 · 82 阅读 · 0 评论 -
一行一行源码分析清楚 AbstractQueuedSynchronizer (三)
这篇文章是 AQS 系列的最后一篇,第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。这篇,我们的关注点是 AQS 最后的部分,AQS 共享模式的使用。有前两篇文章的铺垫,剩下的源码分析将会简单很多。本文先用 CountDownLatch 将共享模式说清楚,然后顺着把其他 AQS 相关的类...转载 2019-08-17 08:33:54 · 128 阅读 · 0 评论 -
一行一行源码分析清楚 AbstractQueuedSynchronizer(二)
文章比较长,信息量比较大,建议在 pc 上阅读。文章标题是为了呼应前文,其实可以单独成文的,主要是希望读者看文章能系统看。本文关注以下几点内容:深入理解 ReentrantLock 公平锁和非公平锁的区别深入分析 AbstractQueuedSynchronizer 中的 ConditionObject深入理解 Java 线程中断和 InterruptedException 异常基本...转载 2019-08-17 08:33:16 · 169 阅读 · 0 评论 -
一行一行源码分析清楚AbstractQueuedSynchronizer
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。Google 一下 AbstractQueuedSynchr...转载 2019-08-16 22:04:53 · 72 阅读 · 0 评论 -
解读 java 并发队列 BlockingQueue
name: java-concurrent-queuetitle: 解读 java 并发队列 BlockingQueuedate: 2019-08-16 11:42:57tags:categories: concurrency最近得空,想写篇文章好好说说 java 线程池问题,我相信很多人都一知半解的,包括我自己在仔仔细细看源码之前,也有许多的不解,甚至有些地方我一直都没有理解到位。...转载 2019-08-16 11:43:49 · 100 阅读 · 0 评论 -
深度解读 java 线程池设计思想及源码实现
我相信大家都看过很多的关于线程池的文章,基本上也是面试的时候必问的,如果你在看过很多文章以后,还是一知半解的,那希望这篇文章能让你真正的掌握好 Java 线程池。本文一大重点是源码解析,同时会有少量篇幅介绍线程池设计思想以及作者 Doug Lea 实现过程中的一些巧妙用法。本文还是会一行行关键代码进行分析,目的是为了让那些自己看源码不是很理解的同学可以得到参考。线程池是非常重要的工具,如果你要...转载 2019-08-14 17:53:01 · 69 阅读 · 0 评论 -
一行一行源码分析清楚AbstractQueuedSynchronizer
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。Google 一下 AbstractQueuedSynchr...转载 2019-08-10 14:19:39 · 124 阅读 · 0 评论 -
深度解读 java 线程池设计思想及源码实现
name: java-thread-pooltitle: 深度解读 java 线程池设计思想及源码实现date: 2019-08-10 14:14:08tags:categories: concurrency我相信大家都看过很多的关于线程池的文章,基本上也是面试的时候必问的,如果你在看过很多文章以后,还是一知半解的,那希望这篇文章能让你真正的掌握好 Java 线程池。本文一大重点是源...转载 2019-08-10 14:17:30 · 75 阅读 · 0 评论