首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java 多线程
小鱼人爱编程
创建于2021-08-12
订阅专栏
彻底详解Java 多线程
等 43 人订阅
共24篇文章
创建于2021-08-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Java Semaphore/CountDownLatch/CyclicBarrier 深入解析(原理篇)
前言 前面分析了基于AQS的独占锁ReentrantLock、共享锁/独占锁ReentrantReadWriteLock,它们内部都实现了Lock 接口。而AQS还有其它常用的子类封装器,它们虽然没有
最详细的图文解析Java各种锁(终极篇)
前言 前面的十几篇文章都是从源码的角度分析线程并发涉及到的知识点,本篇将重点总结、归纳、提炼知识点,尽量少贴代码。遇到有疑惑的点,请查看对应文章的分析。 通过本篇文章,你将了解到: 1、锁的全家福 2
Java 线程池之必懂应用-原理篇(下)
前言 上篇文章分析了线程池的运行原理,本篇将重点分析如何使用线程池、线程池一些常用的API的使用。 通过本篇文章,你将了解到: 1、线程池的状态 线程池有五种状态,分别为: 五者转换如下: 其中: 线
Java 线程池之必懂应用-原理篇(上)
前言 Java 线程池是面试、工作必须掌握的基础之一,使用线程池能够更好地规划应用CPU占用率,提高应用运行的流畅度,本篇将来探索线程池的应用与原理。 通过本篇文章,你将了解到: 1、为什么需要线程池
Java 线程池之线程返回值
前言 通常来说,开启线程能够提高程序的并发能力,而Thread 类里并没有任何方法可以获取到线程的执行结果。接下来,我们将一步步分析如何拿到线程的执行结果。 通过本篇文章,你将了解到: 1、原始方式
Java Semaphore/CountDownLatch/CyclicBarrier 深入解析(应用篇)
前言 上篇文章分析了Semaphore/CountDownLatch/CyclicBarrier 实现原理,这次从应用的角度探索三者适用场合及其使用方式。 通过本篇文章,你将了解到: 1、场景引入 网
Java 并发之 ReentrantReadWriteLock 深入分析
前言 上篇文章分析了AQS的实际应用之一:ReentrantLock 的实现。ReentrantLock 和synchronized 都是独占锁,而AQS还支持共享锁,本篇就来分析AQS 共享锁的实际
Java 并发之 ReentrantLock 深入分析(与Synchronized区别)
前言 前面两篇文章分析了AQS实现的核心功能,如独占锁、共享锁、可中断锁,条件等待等。而AQS是抽象类,需要子类实现,接下来几篇将重点分析这些子类实现的功能,常见的封装AQS子类的类如下: 注:以上这
Java Thread.sleep/Thread.join/Thread.yield/Object.wait/Condition.await 详解
前言 前面几篇文章深入分析了Thread、synchronized、AQS等相关知识,基础打好了,接下来就来分析常见的几个方法的应用、原理及其容易混淆的地方。 通过本篇文章,你将了解到: 1、Thre
Java并发之 AQS 深入解析(下)
前言 上篇分析了AQS实现共享/独占锁的实现细节以及一些疑难点,本篇继续分析AQS剩余部分知识。通过本篇文章,你将了解到: 1、可/不可中断的独占锁 可中断锁的定义 打个小比喻: 再来从代码角度来理解
Java并发之 AQS 深入解析(上)
前言 前面几篇分析了synchronized 原理及其使用,synchronized 是JVM实现的,核心代码是C++,对于不熟悉C++语言的读者可能有点难度。JUC 包下提供了新的同步框架:AQS,
Java Synchronized 重量级锁原理深入剖析下(同步篇)
前言 上篇分析了重量级锁在线程互斥场景下加锁、释放锁的过程,本篇将分析重量级锁在线程同步下的等待、通知机制。 通过本篇文章,你将了解到: 1、为什么 wait/notify/notifyAll 需要上
Java Synchronized 重量级锁原理深入剖析上(互斥篇)
前言 上篇文章分析了偏向锁、轻量级锁的演变过程,本篇将分析重头戏:重量级锁的原理。 通过本篇文章,你将了解到: 1、ObjectMonitor 的运用 我们知道当锁处在轻量级锁的状态时,Mark Wo
Java Synchronized 偏向锁/轻量级锁/重量级锁的演变过程
前言 上篇文章已经分析了Java对象头构成、源码及其对象头的调试,本篇将分析偏向锁、轻量级锁、重量级锁的实现及其演变过程。由于涉及到c++源码,估计不少同学没兴趣看,因此重点多以图+源码辅助分析。 通
Java 对象头分析与使用(Synchronized相关)
前言 从上篇文章我们了解到:synchronized修饰代码块/修饰方法,最终都是在对象头上做文章,因此对象头是深入理解synchronized 各种锁变化的基础。接下来就来深入分析对象头在synch
Java Synchronized实现互斥之应用与源码初探
前言 上篇文章从无到有分析了如何实现"锁",虽然仅仅实现了最简单的锁,但"锁"的精华已经提取出来了,有了这些知识,本篇将分析系统提供的锁-synchronized关键字的使用与实现。 通过本篇文章,你
Java 并发“锁“的本质(一步步实现锁)
前言 在上篇分析了CAS、线程挂起/唤醒相关知识后,常规的做法本篇就需要分析Synchronized与AQS的源码了。不过此次并不打算这样做,这么做就会陷入源码的枯燥讲解中,不了解前因后果,转折过于生
Java Unsafe/CAS/LockSupport 应用与原理
前言 学过C/C++都应该对指针不陌生,指针指向了一个内存块,通过指针就可以轻易地修改内存。而Java已经没有指针这概念,取而代之的是引用,通过引用访问对象里的字段。实际上Java还是提供了操作内存的
Java ThreadLocal你之前了解的可能有误
前言 在Android事件驱动Handler-Message-Looper解析中提到过ThreadLocal,由于篇幅限制没有展开来说,这次来一探究竟。 通过这篇文章你将知道: 线程本地变量 先从一个
真正理解Java Volatile的妙用
前言 通过这篇文章你将知道: 概念解析 看到volatile就会想到线程同步,那么volatile能够实现线程同步吗? 两个前提:什么是线程同步?为什么要进行线程同步? 我们知道,在现代计算机原理中,
下一页