首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java高并发
订阅
墨寒本尊
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
读懂HikariCP一百行代码,多线程就是个孙子!
总结:Java届很难得有读百十行代码就能增加修炼的机会,这里有一个。 通常,我在看书的时候一般不写代码,因为我的脑袋被设定成单线程的,一旦同时喂给它不同的信息,它就无法处理。 但多线程对电脑来说就是小
Java & Android 集合框架 #10 全网最全的 ThreadLocal 原理详细解析 —— 源码篇
在上一篇文章里,我们聊到了 ThreadLocal 的基本原理,这一节我们来结合 ThreadLocalMap 的源码做分析。
高并发情况下你还在用Random生成随机数?
在代码中生成随机数,是一个非常常用的功能,并且JDK已经提供了一个现成的Random类来实现它,并且Random类是线程安全的。 不难看到,上面的方法中使用CAS操作更新seed,在大量线程竞争的场景下,这个CAS操作很可能失败,失败了就会重试,而这个重试又会消耗CPU运算,从…
ForkJoinPool大型图文现场(一阅到底 vs 直接收藏)
并发工具类我们已经讲了很多,这些工具类的「目标」是让我们只关注任务本身,并且忽视线程间合作细节,简化了并发编程难度的同时,也增加了很多安全性。工具类的对使用者的「目标」虽然一致,但每一个工具类本身都有它独特的应用场景,比如: 结合上图相信你的脑海里已经浮现出这几个工具类的具体实…
高性能缓存 Caffeine 原理及实战
一、简介Caffeine是基于Java8开发的、提供了近乎最佳命中率的高性能本地缓存组件,Spring5开始不再支持GuavaCache,改为使用Caffeine。下面是Caffeine官方测试报告。
面试官:CAS和AQS底层原理了解?我:一篇文章堵住你的嘴
场景 1:A 线程执行代码 1 和代码 2,然后 B 线程执行代码 1 和代码 2,CAS 成功。 因为 A 线程执行代码 1 时候会旧值(i 的内存地址的值 10)保存起来,执行代码 2 的时候先判断 i 的最新值(可能被其他线程修改了)跟旧值比较,如果相等则把 i 赋值为 …
用代码说话:synchronized关键字和多线程访问同步方法的7种情况
synchronized关键字在多线程并发编程中一直是元老级角色的存在,是学习并发编程中必须面对的坎,也是走向Java高级开发的必经之路。 互斥性:即在同一时间最多只有一个线程能持有这种锁。当线程1尝试去获取一个由线程2持有的锁时,线程1必须等待或者阻塞,知道线程2释放这个锁。…
JDK1.6 对 synchronized 的锁优化
1.背景在JDK1.6中对锁的实现引入了大量的优化。目的减少锁操作的开销。2.锁优化在看下面的内容之间,希望大家对MarkWord有个大体的理解。Java中一个对象在堆中的内存结构是这样的:MarkW
HashMap面试必问的6个点,你知道几个?
针对这个问题,嗯,当然是必须看过HashMap源码。至于原理,下面那张图很清楚了: HashMap采用Entry数组来存储key-value对,每一个键值对组成了一个Entry实体,Entry类实际上是一个单向的链表结构,它具有Next指针,可以连接下一个Entry实体。 数组…
硬核干货:5W字17张高清图理解同步器框架AbstractQueuedSynchronizer
并发编程大师Doug Lea在编写JUC(java.util.concurrent)包的时候引入了java.util.concurrent.locks.AbstractQueuedSynchronizer,其实是Abstract Queued Synchronizer,也就是"…