java并发源码
文章平均质量分 86
java并发源码
wangzhipeng47
这个作者很懒,什么都没留下…
展开
-
java线程池原理
线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。 所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些”池化资源”技术产生的原因。 例如Android中常见到的很多通用组件一般都离不开”池”的概念,如各种图片加载库,网络请求库,即使And...原创 2021-06-04 02:34:02 · 348 阅读 · 0 评论 -
原创-Hashmap1.7和1.8有哪些区别
(一) 真实面试题之:Hashmap的结构,1.7和1.8有哪些区别 不同点: (1)JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向延伸,当采用头插法时会容易出现逆序且环形链表死循环问题。但是在JDK1.8之后是因为加入了红黑树使用尾插法,能够避免出现逆序且链表死循环的问题。 (2)扩容后数据存储位置的计算方式也不一样:1. 在JDK1.7的时候是直接用hash值和需要扩容的二进制数进行&(这里就是为什么扩容的时候原创 2021-06-04 02:24:16 · 359 阅读 · 0 评论 -
Java集合类源码分析汇总
首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校 会员中心 收藏 动态 消息 创作中心 Java集合类源码分析汇总 舟2016-07-16 21:23:482253收藏2 转自:http://www.cnblogs.com/hzmark/archive/2013/01/05/JavaCollectionSum.html Java集合类基础:http://www.cnblogs.com/hzmark/archive/20...转载 2021-05-15 02:10:02 · 223 阅读 · 0 评论 -
原创--深入AQS原理
【深入AQS原理】我画了35张图就是为了让你深入 AQS 前言 谈到并发,我们不得不说AQS(AbstractQueuedSynchronizer),所谓的AQS即是抽象的队列式的同步器,内部定义了很多锁相关的方法,我们熟知的ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore等都是基于AQS来实现的。 我们先看下AQS相关的UML图: image.png 思维导图: image.png AQS实现原理 AQS中 维护了一原创 2021-05-12 19:25:04 · 137 阅读 · 0 评论 -
ConcurrentHashMap性能提升
ConcurrentHashMap中有十个提升性能的细节,你都知道吗? 一些题外话 如何在高并发下提高系统吞吐是所有后端开发者追求的目标,Java并发的开创者Doug Lea在Java 7 ConcurrentHashMap的设计中给出了一些参考答案,本文详细的总结了ConcurrentHashMap源码中影响并发性能的十个细节,有常见的自旋锁,CAS的使用,也有延迟写内存,volatile语义退化等不常见的技巧,希望对大家的开发设计有所帮助。 由于ConcurrentHashMap的内容比较多,而且原创 2021-05-12 19:22:52 · 525 阅读 · 0 评论 -
JUC并发编程之抽象同步队列AQS框架设计
多线程进阶,JUC并发编程之抽象同步队列AQS框架设计理念一探究竟 1、学习切入点 既然AQS是一个提供给我们使用的框架,那么我们可以看看这个框架都有哪些类依赖它。 从框架来看,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...等。 现在看来我们还有点懵逼,这个框架具体是怎么设计的?下面我们翻看源码注释一探究竟!其中AQS里面维护了一个Node节点构造的CLH队列(FI.原创 2021-05-12 19:06:32 · 172 阅读 · 0 评论 -
【死磕Java并发】—–J.U.C之线程池:ScheduledThreadPoolExecutor
【死磕Java并发】—–J.U.C之线程池:ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor解析 我们知道Timer与TimerTask虽然可以实现线程的周期和延迟调度,但是Timer与TimerTask存在一些缺陷,所以对于这种定期、周期执行任务的调度策略,我们一般都是推荐ScheduledThreadPoolExecutor来实现。下面就深入分析ScheduledThreadPoolExecutor是如何来实现线程的周期...原创 2020-07-06 07:11:04 · 178 阅读 · 0 评论