首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JUC
订阅
ponlanby
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
同事有话说:ThreadPoolExecutor是怎么回收线程的
我勤学好问的同事最近又扔给我一连串ba问gu题wen,其中有一个是关于ThreadPoolExecutor线程池的:ThreadPoolExecutor是怎么回收线程的?基于 "Talk is cheap, show me the code." 的基本原则,我们直接翻一下Thr…
并发编程中一种经典的分而治之的思想!!
对于Java语言来说,生来就支持多线程并发编程,在并发编程领域也是在不断发展的。Java在其发展过程中对并发编程的支持越来越完善也正好印证了这一点。 Java 1 支持thread,synchronized。 Java 5 引入了 thread pools, blocking …
太难了!面试官居然要我停止一个正在运行的线程?
停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安
java并发之计数器CountDownLatch原理
CountDownLatch顾名思义,count + down + latch = 计数 + 减 + 门闩(这么拆分也是便于记忆=_=) 可以理解这个东西就是个计数器,只能减不能加,同时它还有个门闩的作用,当计数器不为0时,门闩是锁着的;当计数器减到0时,门闩就打开了。 如果你…
队列同步器(AQS)源码分析
AQS中获取锁和释放锁的方法很多,今天以acquire()和release()为例来进行源码分析,其他方法的逻辑与这两个方法逻辑基本一样。 以上面demo为例,先创建了一个公平锁,然后调用lock()方法来加锁,最后调用unlock()方法释放锁。在lock()方法中会调用到S…
队列同步器(AQS)的设计原理
1. 前言 在Java中锁所可以分为两大类,一类是通过synchrinized关键字实现的隐式锁,一类是JUC包的锁。前者是通过JVM实现的,后者是根据队列同步器(AQS)实现的,也就是今天的主角。 在JUC包下实现了很多锁以及工具类,例如ReentrantLock、ReadW…
高并发之——深度解析线程池中那些重要的顶层接口和抽象类
在上一篇《高并发之——不得不说的线程池与ThreadPoolExecutor类浅析》一文中,从整体上介绍了Java的线程池。如果细细品味线程池的底层源码实现,你会发现整个线程池体系的设计是非常优雅的!这些代码的设计值得我们去细细品味和研究,从中学习优雅代码的设计规范,形成自己的…
公平锁与非公平锁的对比
1. 问题 在上一篇文章中结合源码介绍了公平锁和非公平锁的实现【文章链接】。这一篇文章将从公平性和性能方面对比一下两者。 在阅读本文之前,可以先思考一下下面两个问题。 1. 非公平锁一定不公平吗? 2. 公平锁与非公平锁的性能谁更好? 2. 对比 主要从公平性和性能这两个方面来…
深度分析:面试阿里,字节跳动,美团几乎都会被问到的阻塞队列
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。 1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。 1.首先判断添加的是否非空,是空的会抛出异常。 3.当集合元素数量和集合的长度相等…
面试官:为什么《阿里巴巴Java开发手册》上要禁止使用Executors来创建线程池
在《阿里巴巴Java开发手册》第一章第6讲并发处理中,强制规定了线程池不允许使用Executors去创建。那么为什么呢?这就得从线程池和Executors这个类的本质上说起了。 在Java中提供了两种类型的线程池来供开发人员使用,分别是ThreadPoolExecutor和Sc…