Java并发编程
文章平均质量分 94
Java并发编程
dying 搁浅
这个作者很懒,什么都没留下…
展开
-
【Java 并发编程】volatile 、synchronized 与 lock 可见性、有序性、原子性大杀器
看懂锁的本质原创 2023-02-06 20:55:54 · 1136 阅读 · 0 评论 -
Redisson 的 AsyncSemaphore 源码剖析 聊聊 Semaphore 限流器
前阵子看了看 redisson 的源码,也搜看了些网上的一些文章,发现讲主逻辑和流程的文章比较多,而对于一些细节的实现做出解释的文章比较少,其实我的上一篇文章也是如此 ,所以在此对 redisson 分布式锁中使用到的数据结构逐个做下解析,一起学习下他们的设计逻辑和思想。......原创 2022-08-17 22:13:54 · 774 阅读 · 0 评论 -
商业级别分布式锁实现(原理&实现&方案一步到位)
相信大多数同学在开始接触 “锁” 时都是 java 中本身给我们提供的关键字 synchronized。但是,实际工作中,我们真的会用 synchronized 来对一些共享资源、互斥场景进行加锁操作吗?原创 2022-08-04 18:04:37 · 436 阅读 · 1 评论 -
聊聊 ForkJoinPool 及 ForkJoinTask (真正的 Fork/Join)
在深入聊 ForkJoinPool 前,我们先聊聊 ForkJoinPool 与 ThreadPoolExecutor的区别。我们为啥要用 ForkJoinPool ?相比于我们更常用的 ThreadPoolExecutor ,ForkJoinPool 又能给我们带来什么呢?带着这样的问题我们来好好聊聊。原创 2021-01-25 22:27:24 · 1639 阅读 · 0 评论 -
聊聊 Fork/Join 及 Future
脑图概览CPU 密集型任务 和 IO 密集型任务在聊 Future 以及 Fork/Join 之前我想先聊聊我们所运行的任务。一般性来说,我们的所运行的任务在 CPU 级别 被分为两类:CPU 密集型 和 IO 密集型。CPU 密集型CPU 密集型任务 也叫做 计算密集型任务 。意思为 硬盘及内存性能要比 CPU 好很多。大多数时间是 CPU Loading 100% ,CPU 要读写硬盘内存时所花费的时间很短,但计算时间很长。在我们的程序系统中,绝大多数时间耗费在 计算、逻辑判断等 CPU原创 2021-01-17 17:42:47 · 574 阅读 · 0 评论 -
操作系统底层认识(并发基础)
在深入了解和掌握并发之前,我们首先得先对我们所使用的操作系统底层的工作原理有一个大概的认识,对于我们后端开发人员来说操作系统中最最重要的两块是 CPU 和 内存。所以后面重点讲解的也在这两块。冯诺依曼计算机模型冯诺依曼计算机模型我想大家多多少少都有听过,我们现在的计算机模型都是基于这个发展而来。计算机在运行时,控制器从内存中读取第一条指令,根据指令的指示去对应的内存中取数据进行相应的运算,将得出的计算结果再写回内存中,然后取出第二条指令同样在控制器的指挥下完成对应的操作,重复以上动作直到遇到停止命令.原创 2020-11-09 17:53:56 · 2230 阅读 · 13 评论 -
Java并发编程【并发BUG的源头】
1. 缓存导致的可见性问题在多核cpu时代,cpu缓存的同步会导致共享变量的操作结果在多个线程之间不可见,进而导致并发问题。int count=0;如图若线程A和线程B同时做 count+=1;操作,得到的结果可能并不是我们想要的 count=2 而是 count=1如此若循环加 1万 次 count 的结果接近 2万 而不是 2万。若循环 1亿 次效果将更明显 count 的结果接近 1...原创 2019-06-19 21:34:34 · 452 阅读 · 0 评论 -
Java并发编程-类锁与对象锁剖析
由双重锁实现单例引发的疑问下面是双重锁实现单例的具体实现public Singleton{ private static volatile Singleton singleton; private Singleton(){}; public static getSingleton(){ if(singleton==null){ synchronized(Singleton...原创 2019-07-05 19:58:29 · 431 阅读 · 0 评论