首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
切梦刀
更多收藏集
微信扫码分享
微信
新浪微博
QQ
7篇文章 · 0订阅
面试官:CAS和AQS底层原理了解?我:一篇文章堵住你的嘴
场景 1:A 线程执行代码 1 和代码 2,然后 B 线程执行代码 1 和代码 2,CAS 成功。 因为 A 线程执行代码 1 时候会旧值(i 的内存地址的值 10)保存起来,执行代码 2 的时候先判断 i 的最新值(可能被其他线程修改了)跟旧值比较,如果相等则把 i 赋值为 …
@Async用了springboot提供的线程池,居然引发了事故?
感觉有点像营销号的标题。。 确实是由于使用@async却不清楚springboot默认线程池配置导致的一次生产环境的事故。承认错误,立正挨打。 @Async默认使用spring boot注解的线程池。线程池参数中的queue_capacity和max_pool_size均是in…
图解Java线程池原理
为了避免频繁重复的创建和销毁线程,我们可以让这些线程进行复用,在线程池中,总会有活跃的线程在占用,但是线程池中也会存在没有占用的线程,这些线程处于空闲状态,当有任务的时候会从池子里面拿去一个线程来进行使用,当完成工作后,并没有销毁线程,而是将线程放回到池子中去。 上面内容出自《…
死磕 java同步系列之AQS终篇(面试)
AQS的全称是AbstractQueuedSynchronizer,它的定位是为Java中几乎所有的锁和同步器提供一个基础框架。 在之前的章节中,我们一起学习了ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLat…
一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
在网络的初期,网民很少,服务器完全无压力,那时的技术也没有现在先进,通常用一个线程来全程跟踪处理一个请求。因为这样最简单。 其实代码实现大家都知道,就是服务器上有个ServerSocket在某个端口监听,接收到客户端的连接后,会创建一个Socket,并把它交给一个线程进行后续处…
JDK并发AQS系列(一)
1995年sun公司发布了第一个java语言版本,可以说从jdk1.1到jdk1.4期间java的使用主要是在移动应用和中小型企业应用中,在此类领域中基本不用设计大型并发场景,当然也没有大型互联网公司使用java,因为担心它本身的性能。 在互联网及服务器硬件迅猛的发展下,sun…
JDK并发AQS系列(五)
鉴于自旋锁的不足,Craig,Landin,Hagersten发明了CLH锁。而在CLH锁核心思想的影响下,Java并发包的基础框架AQS以CLH锁作为基础而设计,其中主要是考虑到CLH锁更容易实现取消与超时功能。 节点的结构与节点等待机制。在结构上引入了头结点和尾节点,他们分…