首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
weixin38117893
更多收藏集
微信扫码分享
微信
新浪微博
QQ
27篇文章 · 0订阅
深入掌握底层源码常见的 CAS 原子编程
1. 无锁编程产出背景 2. CAS 如何实现的无锁编程 3. CAS 使用中的 “ABA” 痛点 4. 如何解决 “ABA” 问题
万字图文 | 聊一聊 ReentrantLock 和 AQS 那点事(看完不会你找我)
AbstractQueuedSynchronizer(AQS)是 Java 并发编程中绕不过去的一道坎,JUC 并发包下的 Lock、Semaphore、ReentrantLock 等都是基于 AQS 实现的。AQS 是一个抽象的同步框架,提供了原子性管理同步状态,基于阻塞队列…
CPU缓存和内存屏障
L3 Cache(三级缓存)现在都是内置的, 而它的实际作用既是, L3缓存的应用可以进一步降低内存延迟, 同时提升大数据量计算时处理器的性能. 具有较大L3缓存的处理器更有效的文件系统缓存行为及较短消息和处理器队列长度. 一般是多核共享一个L3缓存 多CPU读取同样的数据进行…
一文解决内存屏障
内存屏障是硬件之上、操作系统或JVM之下,对并发作出的最后一层支持。再向下是是硬件提供的支持;向上是操作系统或JVM对内存屏障作出的各种封装。内存屏障是一种标准,各厂商可能采用不同的实现。 本文仅为了帮助理解JVM提供的并发机制。首先,从volatile的语义引出可见性与重排序…
Java内存模型与内存屏障
多线程环境中存在因数据竞争而产生的同步问题,为了避免因数据竞争而产生同步问题,Java虚拟机规范(Java5)引入了happens-before这一概念来定义Java内存模型。 happens-before 描述了两个操作内存的可见性。例如X happens-before Y,…
阿里面试官问我Java线程和操作系统线程什么关系
我: 看了看面试官头部稀疏的结缔组织,已然觉得这场面试不简单,不过好在事前把安琪拉的博客看了个遍,有所准备,我回答说:咳咳,掌握的还算可以。 我:用过。 剧情不应该这样的啊,开场不应该先是 synchronized 或者 volatile,再然后是线程池和AQS,怎么上来就整这…
ThreadLocal深入剖析
1、每个线程都有一个 ThreadLocalMap 对象,每个 ThreadLocalMap 里面都包含了一个 Entry[] 数组,而 Entry 是由 key(threadLocal)和 value(数据)组成。 2、Entry extends WeakReference,…
线程池的7种创建方式,强烈推荐你用它...
根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因此 CPU 上的晶体管数量会越来越多。 但随着时间的推移,集成电路上可容纳的晶体管数量已趋向饱和,摩尔定律也渐渐失效,因此多核 CPU 逐渐变为主流,与之相对应的多线程编程也开始变得普及和流行起来,这当然也是…
池化技术到达有多牛?看了线程和线程池的对比吓我一跳!
情商高的人是能洞察并照顾到身边所有人的情绪,而好的文章应该是让所有人都能看懂。 尼采曾经说过:人们无法理解他没有经历过的事情。因此我会试着把技术文章写的尽量具象化一些,力求让所有人都能看懂,所以在正式开始之前,我们先从两个生活事例说起。 早些年间,某宝双“11”突然爆火,然后无…
Java线程池的四种用法与使用场景
综上所述,在实际的开发中,这种操作其实是不可取的一种方式。 创建一个线程池,如果线程池中的线程数量过大,它可以有效的回收多余的线程,如果线程数不足,那么它可以创建新的线程。 通过分析我看可以看到,至始至终都由一个线程执行,实现了线程的复用,并没有创建多余的线程。 如果当我们的业…