首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JUC
订阅
小鹿偶尔爱coding
更多收藏集
微信扫码分享
微信
新浪微博
QQ
23篇文章 · 0订阅
CompletableFuture真香,可以替代CountDownLatch!
在对类的命名篇长文中,我们提到了Future和Promise。 Future相当于一个占位符,代表一个操作将来的结果。一般通过get可以直接阻塞得到结果,或者让它异步执行然后通过callback回调结
基础篇:异步编程不会?我教你啊!CompletableFuture(JDK1.8)
以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简…
【并发编程系列8】阻塞队列之ArrayBlockingQueue,LinkedBlockingQueue,LinkedBlockingDeque原理分析
整理了一份JavaJVM多线程MySQLRedisKafkaDockerRocketMQNginxMQ队列数据结构并发编程并发压测秒杀架构等技术知识点PDF,如果你有需要的话,可以点击这里领取什么是阻
【并发编程系列7】CountDownLatch,CyclicBarrier,Semaphore实现原理分析
前言:整理了一份JavaJVM多线程MySQLRedisKafkaDockerRocketMQNginxMQ队列数据结构并发编程并发压测秒杀架构等技术知识点PDF,如果你有需要的话,可以点击这里领取C
Java多线程:彻底搞懂线程池
熟悉Java多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了。目录1线程池的优势2线程池的使用3线程池的工作原理4线程池的参数4.1任务队列(work
为什么会有 AtomicReference 呢?
我们之前了解过了 AtomicInteger、AtomicLong、AtomicBoolean 等原子性工具类,下面我们继续了解一下位于 java.util.concurrent.atomic 包下的工具类。 个人账户类只包含两个字段:accountName 和 money,这…
AQS源码分析
AQS的等待队列如下图,注意head是不在等待队列中的。 创建ReentrantLock时,指定了入参true,这里要说明ReentrantLock在内部通过Sync管理锁,有公平和非公平两种,我们这里使用公平锁。 在tryAcquire尝试获取锁失败后,会进入acquireQ…
并发编程——详解 AQS CLH 锁
AQS 是 JUC 中的核心,其中封装了资源的获取和释放,在我们之前的 并发编程之 AQS 源码剖析 文章中,我们已经从 ReentranLock 那里分析了锁的获取和释放。但我有必要再次解释 AQS 的核心 CLH 锁。 Java AQS 的设计对 CLH 锁进行了优化或者说…
反制面试官 | 14张原理图 | 再也不怕被问 volatile!
这一篇也算是Java并发编程的开篇,看了很多资料,但是轮到自己去整理去总结的时候,发现还是要多看几遍资料才能完全理解。还有一个很重要的点就是,画图是加深印象和检验自己是否理解的一个非常好的方法。 这是一份精心总结的Java内存模型思维导图,拿去不谢。 JMM是Java内存模型,…
Java线程池(三):线程池执行的原理
reject没什么好说的,就是调用具体的拒绝处理策略就完事了,主要就是创建工作线程addWorker了。 ok,submit底层是调用的execute,看了这个你或许就会知道,哦,原来execute方式是可以获取到执行结果的,因为说白了submit方式就是对execute一个简…