首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
安静的做一只狗
更多收藏集
微信扫码分享
微信
新浪微博
QQ
19篇文章 · 2订阅
《提升能力,涨薪可待》-Java并发之AQS全面详解
AQS全称AbstractQueuedSynchronizer,即抽象的队列同步器,是一种用来构建锁和同步器的框架。 AQS 解决了在实现同步器时涉及的大量细节问题,例如自定义标准同步状态、FIFO 同步队列。 基于 AQS 来构建同步器可以带来很多好处。它不仅能够极大地减…
别再纠结线程池大小/线程数量了,没有固定公式的
那么理论上,我一个线程只需要不停的执行指令,就可以跑满一个核心的利用率。 从上图可以看到,CPU利用率和上一步一样,还是所有核心100%,不过此时负载已经从11.x增加到了22.x(load average解释参考https://scoutapm.com/blog/unders…
基础篇:JAVA原子组件和同步组件
在使用多线程并发编程的时,经常会遇到对共享变量修改操作。此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据。但如果单单是涉及状态的修改,线程执行顺序问题,使用Atomic开头的原子组件或者ReentrantLock…
深入掌握底层源码常见的 CAS 原子编程
1. 无锁编程产出背景 2. CAS 如何实现的无锁编程 3. CAS 使用中的 “ABA” 痛点 4. 如何解决 “ABA” 问题
彻底理解volatile
1. volatile简介 在上一篇文章中我们深入理解了java关键字synchronized,我们知道在java中还有一大神器就是关键volatile,可以说是和synchronized各领风骚,其中奥妙,我们来共同探讨下。 通过上一篇的文章我们了解到synchronized…
彻底理解synchronized
通过字节码分析以及源码解析深入理解synchronized的使用场景以及背后的实现原理,避免在生产环境出现并发问题,
2w字 + 40张图带你参透并发编程!
在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。 操作系统的出现为我们的程序带来了 并发性,操作系统使我们的程序能够同时运行多个程序,一个程序就…
线程安全: 互斥锁和自旋锁(10种)
无并发,不编程.提到多线程就很难绕开锁🔐. 1. 互斥锁: 同一时刻只能有一个线程获得互斥锁,其余线程处于挂起状态. 2. 自旋锁: 当某个线程获得自旋锁后,别的线程会一直做循环,尝试加锁,当超过了限定的次数仍然没有成功获得锁时,线程也会被挂起. 自旋锁较适用于锁的持有者保存…
一文带你理解Java锁们:乐观锁,悲观锁,公平锁,轻量级锁,锁粗化...
乐观锁时常抱有乐观的想法,即默认读多写少,且遇到并发写入的可能性低。所以不会直接上锁,而是在每次更新的时候,比较版本号,如果版本号一致,则更新,如果不一致,则失败进行重读。 CAS 就是一种常见的乐观锁实现。他包含3个参数CAS(V,E,N),V表示被更新的变量,E表示旧的预期…
Java锁详解:“独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁+线程锁”
乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用。 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。 乐观锁适…