首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
并发
订阅
_这样啊_
更多收藏集
微信扫码分享
微信
新浪微博
QQ
16篇文章 · 0订阅
ScheduledThreadPoolExecutor源码深入分析
Java版本:8u261。 ScheduledThreadPoolExecutor即定时线程池,是用来执行延迟任务或周期性任务的。相比于Timer的单线程,定时线程池在遇到任务抛出异常的时候不会关闭整个线程池,更加健壮(需要提一下的是:ScheduledThreadPoolEx…
个人珍藏的80道多线程并发面试题(1-10答案解析)
1. synchronized的实现原理以及锁优化? synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。 Monitor其实是一种「同步工具」,也可以说是一种「同步机制」。 在Java虚拟机(HotSpot)中,Monitor是…
ConcurrentLinkedQueue源码分析
在并发编程中,我们可能经常需要用到线程安全的队列,JDK提供了两种模式的队列:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS实现。ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列,对于。下面看看JDK是如何使用非阻塞的方式来实现…
cache一致性里的MESI协议
在有多个核的处理器的处理器中,每个核都有自己的cache,而如何确保多个核的cache内容的一致则是一个很容易遇到的问题,MESI协议就是一个专门用来解决cache一致性的协议。很多处理器使用的都是MESI协议或者MESI协议的变体,而MESI协议其实也是MSI协议的变种。ME…
volatile原理技术知识整理
volatile是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于synchronize高效,而常常跟synchronize配合使用。 一. Java内存模型 主存存放线程需要操作的变量,但线程并不直接操作主存。 每个线程读取主存变量都…
一口气说出 6种 延时队列的实现方案,面试稳稳的
五一期间原计划是写两篇文章,看一本技术类书籍,结果这五天由于自律性过于差,禁不住各种诱惑,我连电脑都没打开过,计划完美宣告失败。所以在这能看出和大佬之间的差距,人家没白没夜的更文,比你优秀的人比你更努力,难以望其项背,真是让我自愧不如。 知耻而后勇,这不逼着自己又学起来了,个人…
AQS相关组成及原理源码解析
1. 队列同步器AQS的组成及使用 它的主要作用就是同个state的加减和队列来管理线程的执行。 看源码可知:ReentrantLock、Semaphore、ReentrantReadWriteLock、CountDownLatch中都有继承自AQS的Sync及其子类。 AQS…
死磕synchronized底层实现
Mark Word(标记字段):默认存储对象的HashCode,分代年龄和锁标志位信息。它会根据对象的状态复用自己的存储空间,也就是说在运行期间Mark Word里存储的数据会随着锁标志位的变化而变化。 Klass Point(类型指针):对象指向它的类元数据的指针,虚拟机通过…
Guava 消息框架 EventBus 的实现原理
EventBus的设计理念是基于观察者模式的,可以参考设计模式(1)—观察者模式先来了解该设计模式。 EventBus的使用是非常简单的,首先你要添加Guava的依赖到自己的项目中。这里我们通过一个最基本的例子来说明EveentBus是如何使用的。 首先,这里我们封装了一个事件…
聊聊线程池原理,这一顿操作说懵阿里面试官...
想要进阶自己的开发水平,JDK源码中一些优秀的设计必须要经常学习,哪怕不学习,应对面试的时候,还是要能够应对几招,代表自己对这些东西还是有所了解。 对上面问题都已经了如指掌的大佬,联系我,让我表达对你的膜拜... 以上问题相对来说并不是很难,只要有认真看线程池源码,都可以找到答…