![](https://img-blog.csdnimg.cn/f18b7f79d24e4b37ade4133b4578c27c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
并发编程
文章平均质量分 93
深入讲解Java并发编程底层原理,分析JDK源码。
小七mod
脚踏实地,仰望星空
展开
-
【线程池】史上最全的ScheduledThreadPoolExecutor源码分析
史上最全的ScheduledThreadPoolExecutor源码分析,一篇文章带你分析ScheduledThreadPoolExecutor底层原理,带你彻底学会定时任务线程池。原创 2023-07-01 10:56:13 · 867 阅读 · 0 评论 -
【阻塞队列】阻塞队列DelayedWorkQueue源码详解
阻塞队列DelayedWorkQueue源码详解,一篇文章带你彻底学会DelayedWorkQueue底层原理。原创 2023-07-01 10:38:49 · 756 阅读 · 0 评论 -
【线程池】史上最全的ThreadPoolExecutor源码详解
史上最全的ThreadPoolExecutor源码详解,一篇文章带你彻底搞懂ThreadPoolExecutor底层原理。原创 2023-06-30 22:59:28 · 2333 阅读 · 0 评论 -
【并发编程】Java的Future机制详解(Future接口和FutureTask类)
Java的Future机制详解原创 2023-06-30 22:47:23 · 9702 阅读 · 5 评论 -
【线程池】线程池的ctl属性详解
线程池的ctl属性详解原创 2023-06-30 22:29:34 · 1495 阅读 · 0 评论 -
【线程池】Java线程池的内部类Worker详解
Java线程池的内部类Worker详解,一篇文章让你彻底搞懂Worker内部类,带你深度分析底层源码。原创 2023-06-30 22:15:40 · 2524 阅读 · 2 评论 -
【线程池】线程池的拒绝策略(饱和策略)
线程池拒绝策略(饱和策略)详解原创 2023-06-30 22:07:09 · 2127 阅读 · 0 评论 -
【线程池】ScheduledExecutorService接口和ScheduledThreadPoolExecutor定时任务线程池使用详解
一篇文章带你快速了解ScheduledExecutorService接口和ScheduledThreadPoolExecutor定时任务线程池。原创 2023-06-30 21:45:01 · 5870 阅读 · 0 评论 -
【线程池】Executors框架创建线程池
详细讲解使用Executors框架创建Java线程池原创 2023-05-28 22:41:08 · 3651 阅读 · 0 评论 -
【线程池】Java线程池的核心参数
一篇文章带你快速了解Java线程池的核心参数原创 2023-05-28 22:22:50 · 5299 阅读 · 1 评论 -
【线程池】Java的线程池
线程池简介原创 2023-05-28 22:14:37 · 207 阅读 · 0 评论 -
【并发基础】Happens-Before模型详解
了解Happens-Before模型,读着一篇文章就够了。详细讲解Java提供的九种保证可见性和有序性的语义规则。原创 2023-05-07 21:56:59 · 640 阅读 · 1 评论 -
【并发基础】一篇文章带你彻底搞懂Java线程中断的底层原理——interrupt()、interrupted()、isInterrupted()
一篇文章带你彻底搞懂Java中断机制,从底层源码带你分析interrupt()的机制与用法。学习Java中断看这一篇就够了。原创 2023-04-23 21:36:11 · 4322 阅读 · 0 评论 -
【并发基础】join()方法底层原理详解
详细讲解Thread类中join()方法实现线程的强制执行,通过底层源码深入了解方法原理,彻底了解join方法的运作机制。原创 2023-03-16 22:16:34 · 3220 阅读 · 2 评论 -
【并发基础】线程的通知与等待:obj.wait()、obj.notify()、obj.notifyAll()详解
详细讲解Object类中wait()、notify()、notifyAll()方法实现线程通信和线程等待,以及各自的特点和使用方法。原创 2023-03-12 17:30:59 · 1034 阅读 · 0 评论 -
【并发基础】操作系统中线程/进程的生命周期与状态流转以及Java线程的状态流转详解
一篇文章帮你彻底搞懂操作系统中线程/进程的生命周期与状态流转。带你详细分析Java线程的状态流转,搞清楚Java线程和操作系统线程状态的区别。原创 2023-03-10 22:27:59 · 1586 阅读 · 0 评论 -
【并发基础】一篇文章带你彻底搞懂睡眠、阻塞、挂起、终止之间的区别
线程/进程的睡眠、阻塞、挂起、终止详解及区别。带你彻底搞清楚睡眠、阻塞、挂起、终止之间的区别,为多线程学习扫清障碍。原创 2023-03-06 22:23:50 · 3324 阅读 · 0 评论 -
【并发基础】Java中线程的创建和运行以及相关源码分析
带你快速了解Java中线程的创建和运行,从源码层面详细剖析Java中线程运行的原理。原创 2023-03-02 21:34:23 · 419 阅读 · 0 评论 -
【并发基础】线程,进程,协程的详细解释
一文带你彻底搞懂线程,进程,协程之间的区别和特点。原创 2023-02-28 21:51:25 · 1853 阅读 · 0 评论 -
【并发编程】LockSupport源码详解
一篇文章带你搞懂LockSupport,从底层源码详细剖析其实现原理。面试再也不怕LockSupport。原创 2023-02-14 22:36:40 · 874 阅读 · 1 评论 -
【并发编程】史上最详细的ReentrantReadWriteLock源码刨析
史上最详细的ReentrantReadWriteLock源码刨析,带你深入代码底层原理,彻底搞懂ReentrantReadWriteLock。原创 2022-09-09 20:50:21 · 418 阅读 · 0 评论 -
【并发编程】爆肝1个月,一篇文章带你彻底搞懂ReentrantLock底层原理
爆肝1个月,史上最全的ReentrantLock源码详解,带你深度刨析ReentrantLock源码细节。想要面试不畏ReentrantLock,看这一篇文章就够了。原创 2022-08-29 17:28:32 · 674 阅读 · 0 评论 -
【Java集合】HashMap系列(五)——HashMap在JDK1.7和JDK1.8比较总结及常见面试题
对比HashMap在JDK1.7和JDK1.8的不同,HashMap的高频面试题以及分析为什么Hashtable和ConcurrentHashMap 是不允许键或值为 null 的,HashMap 的键值则都可以为 null?原创 2022-08-17 19:46:30 · 1119 阅读 · 0 评论 -
【并发编程】为什么Hashtable和ConcurrentHashMap 是不允许键或值为 null 的,HashMap 的键值则都可以为 null?
为什么Hashtable和ConcurrentHashMap 是不允许键或值为 null 的,HashMap 的键值则都可以为 null?这篇文章将从源码实现的角度和架构设计的角度分别讨论其原因。原创 2022-08-15 21:05:07 · 5704 阅读 · 1 评论 -
【Java集合】HashMap系列(四)——HashMap在JDK1.7和JDK1.8中的并发问题的分析以及如何保证并发安全
结合源码和画图详细剖析JDK1.7和JDK1.8的HashMap存在的并发安全问题,以及如何解决HashMap的并发安全问题原创 2022-08-09 15:21:42 · 2345 阅读 · 1 评论 -
【并发编程】ReentrantLock的lockInterruptibly()方法源码分析
ReentrantLock的lockInterruptibly()方法源码分析。带你详细分析支持线程中断的加锁方法原理。ockInterruptibly()支持线程中断,它与lock()方法的主要区别在于lockInterruptibly()获取锁的时候如果线程中断了,会抛出一个异常,而lock()不会管线程是否中断都会一直尝试获取锁,获取锁之后把自己标记为已中断,继续执行自己的逻辑,后面也会正常释放锁。.........原创 2022-08-03 19:27:35 · 1503 阅读 · 0 评论 -
【并发编程】ReentrantLock的lock()方法源码分析
ReentrantLock的lock()方法源码分析。带你详细分析公平锁和非公平锁的区别。原创 2022-07-30 11:26:26 · 867 阅读 · 0 评论 -
【并发编程】Condition条件锁源码详解
想学习Java条件锁的小伙伴必看,本文将带你深入了解Condition条件锁底层原理,详细刨析Condition的数据结构、newCondition()方法、await()方法、signal()方法底层实现,带你逐行阅读分析源码。一篇文章让你彻底搞懂Condition条件锁。...原创 2022-06-29 09:22:59 · 1127 阅读 · 0 评论 -
【并发编程】Lock接口
在Java SE5之后,并发包中新增了Lock接口以及相关实现类,用来实现锁功能,它提供了与synchronized类似的同步功能,只是在使用时需要显式地获取和释放锁。虽然它缺少了隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性、可中断的获取锁以及超时获取锁等多种synchronized所不具备的特性。...原创 2022-06-28 17:24:27 · 303 阅读 · 0 评论 -
【并发编程】JUC中locks包简介
locks包中提供了很多种锁,locks包的结构如下:locks包里面最重要的就是提供了lock和ReadWrite两种接口,提供两种类型的锁。这两个接口也就形成了整个locks包的基石。未来我们会通过几篇文章,详细剖析locks包中几个重要的类的源码。...原创 2022-06-09 16:55:16 · 282 阅读 · 0 评论 -
【并发基础】一篇文章带你快速掌握ThreadLocal及其原理
一篇文章快速带你了解ThreadLocal的底层原理和面试必考点,带你分析ThreadLocal底层源码以及应用场景。原创 2022-05-26 21:57:21 · 280 阅读 · 0 评论 -
【并发基础】Java中的fail-fast(快速失败)机制
fail-fast 机制,即快速失败机制,是java集合(Collection)中的一种错误检测机制。当多个线程对同一个集合的内容进行操作时,就有可能出现在一个线程正在迭代集合的过程中,该集合因为别的线程对其的操作使得结构发生变化,这就会产生fail-fast事件,抛出 ConcurrentModificationException异常。原创 2022-01-19 21:41:49 · 2782 阅读 · 0 评论 -
【并发基础】AQS(Abstract Queued Synchronizer)框架的使用和实现原理详解
Java并发包(JUC)中提供了很多并发工具,这其中,很多我们耳熟能详的并发工具,譬如ReentrangLock、Semaphore,它们的实现都用到了一个共同的基类--AbstractQueuedSynchronizer,简称AQS(抽象队列同步器)。AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaph...原创 2020-02-21 09:51:08 · 1189 阅读 · 0 评论 -
【并发基础】CAS(Compare And Swap)操作的底层原理以及应用详解
目录一、锁机制存在的问题二、什么是CAS三、CAS的应用3.1 非阻塞算法 (nonblocking algorithms)四、CAS底层原理4.1 处理器自动保证基本内存操作的原子性4.2 通过总线锁定来保证原子性4.3 通过缓存锁定来保证原子性4.4 总结五、CAS存在的问题5.1 循环时间太长5.2 只能保证一个共享变量原子操作5.3 A...原创 2020-02-21 09:28:38 · 3192 阅读 · 0 评论 -
【并发编程】synchronized关键字最全详解,看这一篇就够了
目录引入一、synchronized的特性1.1 原子性1.2 可见性1.3 有序性1.4 可重入性二、synchronized的用法根据修饰对象分类1.同步方法2.同步代码块根据获取的锁分类1.获取对象锁2.获取类锁三、synchronized锁的实现3.1 为什么synchronized通过锁机制可以保证原子性,可见性和有序性,其...原创 2020-02-19 11:47:38 · 1720 阅读 · 0 评论 -
【并发编程】线程安全和线程不安全的定义以及实现线程安全的方法有哪些
目录1、线程安全1.1 不可变1.2 绝对线程安全1.3 相对线程安全1.4 线程兼容1.5 线程对立1.6 线程安全的实现方法1.6.1 互斥同步 线程执行互斥代码的过程 ① 实现互斥同步的方法--synchronized关键字 ② 实现互斥同步的方法--ReentrantLock关键字1.6.2 非阻塞同步...原创 2020-02-19 09:38:49 · 1417 阅读 · 0 评论 -
【并发编程】Java中的锁有哪些?各自都有什么样的特性?
目录锁的概念公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁可中断锁在Java中锁的种类主要有这些:公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 可中断锁上面是很多锁的名词,这些分类并不是全是指锁的状...原创 2020-02-19 09:20:35 · 996 阅读 · 0 评论 -
【并发编程】volatile关键字最全详解,看这一篇就够了
目录一、引入1.1 可见性问题:1.2 重排序问题:二、前言三、CPU缓存3.1 CPU多级缓存架构3.2 使用CPU缓存带来的问题3.3 lock指令做了什么3.3 缓存一致性协议3.4 内存屏障(Memory Barrier)3.4.1 volatile语义中的内存屏障3.4.2 final语义中的内存屏障3.5 汇编指令LOCK与内存屏障...原创 2020-02-18 23:52:21 · 1315 阅读 · 1 评论 -
【并发编程】类锁和对象锁的区别
类锁和对象锁的区别:对象锁是当前对象实例的锁,只有是同一个对象才会涉及是否做同步 类锁故名思议就是这个class的锁,只要是同类,即使不同的对象也必须同步例子:先做一个Person的对象做为锁。代码如下:public class Person { String name; String age; public Person() { }...原创 2020-02-14 20:56:38 · 444 阅读 · 0 评论 -
【Java内存模型】Java内存模型(JMM)详解以及并发编程的三个重要特性(原子性,可见性,有序性)
目录1 Java内存模型(Java memory model JMM)1.1 什么是JMM(JMM的作用)1.2 JMM的组成2 硬件内存架构与java内存模型2.1 硬件架构2.2 Java线程与硬件处理器2.3 Java内存模型与硬件内存架构的关系2.4 Java内存模型的必要性3.并发编程的三个重要特性3.1 原子性3.2 可见性3.3...原创 2020-02-14 20:25:07 · 2850 阅读 · 0 评论