
多线程高并发
文章平均质量分 64
多线程高并发
程序健跑人生
不求与人相比,但求超越自己。
展开
-
真实互联网线上系统JVM内存溢出排查流程(文末彩蛋)
真实互联网线上系统JVM内存溢出排查流程(文末彩蛋)原创 2022-08-17 18:33:04 · 616 阅读 · 1 评论 -
高并发之JUC——关于Doug Lea公平锁与非公平锁设计思想与源码全面解析
我的文章都是根据我思维导图线路总结的,此文为高并发系列之JUC。Doug Lea的ReentrantLock原理真的很简单,没必要搞的那么复杂,自己完全可以手写一个。原创 2020-05-23 21:33:13 · 755 阅读 · 0 评论 -
高并发之JUC——AQS源码深度分析,有你不得而知的条件等待队列(二)
上一篇分析了关于AQS独占锁的执行流程和源码。在AQS中不仅涉及了独占锁,还涉及了共享锁及带超时时间的共享锁、中断共享锁。本文就讲解上述锁的获取锁和释放锁的原理。AQS获取共享锁acquireShared共享锁,顾名思义就是多个线程可以共享同一把锁,在JUC下面如CountDownLatch就是基于共享锁实现的。那么了解了共享锁是神什么,那么先来看下它是如何获取锁的。共享锁获取锁和独占锁获取锁在AQS中的逻辑是基本一致的,流程图可以参考我上一篇中关于AQS独占锁加锁的流程图。接下来先看下执行代码.原创 2020-05-20 21:59:54 · 452 阅读 · 0 评论 -
高并发之JUC——AQS源码深度分析(一)
不要只满足于目前的安逸,傻傻的在工作中写CRUD了。因为在目前疫情面前,企业依然朝不保夕。我们不能温水煮青蛙,只有时刻保持一颗学习的心,拥有硬核能力,时刻心如止水,才能立于不败之地。这是高并发JUC的系列的第一篇。AbstractQueuedSynchronizer简称AQS,它是JUC工具类的基石,JUC包下的类都直接或间接的继承了AbstractQueuedSynchronizer,而JUC是jdk自带的实现高并发的辅助工具。所以我们首先分析AQS源码,才能更好的学习JUC并发包中的其他工具类。.原创 2020-05-16 22:01:13 · 874 阅读 · 0 评论 -
从kernel层面分析synchronized、volatile,进大厂必备硬核小伎俩(下)
上两篇文章中主要讲解了synchronized和volatile关键字涉及的底层设计及相关概念,同时也包括了synchronized锁升级过程。本文中将重点讲解volatile的底层实现及DCL单例是否需要加volatile修饰。原创 2020-04-18 15:37:29 · 481 阅读 · 0 评论 -
从kernel层面分析synchronized、volatile,进大厂必备硬核小伎俩(中)
本篇是关于从kernel层面分析synchronized、volatile,进大厂必备硬核小伎俩系列的第二篇。在上一篇中主要介绍了一些关于synchronized、volatile相关的底层相关的概念。本文主要介绍内存屏障的概念、分析jvm锁升级的过程等。而关于volatile的实现细节及DCL单例是否需要加volatile修饰将在下一篇进行介绍。原创 2020-04-14 22:27:46 · 526 阅读 · 2 评论 -
从kernel层面分析synchronized、volatile,进大厂必备硬核小伎俩(上)
本专题将分为两篇文章进行讲解,此篇主要介绍关于synchronized和volatile在kernel层面涉及的一些核心概念,下一篇会详细说明synchronized和volatile实现原理,包括内存屏障、锁升级过程(偏向、轻量、重量)、重入锁、线程可见性、指令重排等核心原理,其中也不乏DCL单例是否需要volatile修饰等有趣问题。原创 2020-04-12 14:55:53 · 1175 阅读 · 2 评论