并发编程
文章平均质量分 76
柠檬丶Ewing
以输出倒逼输入
展开
-
谈谈Volatile
前言 Volatile的能够保证并发编程的两大特性 一是可以保证可见性,即一个线程对共享变量的修改,能够对其他线程立即可见 二是可以保证有序性,即防止操作系统通过指令重排序来优化程序,毕竟在高并发的场景下,要保证重排序后的执行结果跟排序前的一致,是非常难的 正文 本文将围绕Volatile的三个内来展开 内存模型(JMM) 内存语义 内存屏障 1. 内存模型(JMM) 关于L1、L2、L3高速缓存,L1和L2是一个CPU一个,L3是整个计算机共享一个,所以下图可能画的不太准确(懒得重画了),不过不影响各原创 2021-04-26 16:38:10 · 222 阅读 · 0 评论 -
讲讲Synchronized
前言 网上关于Synchronized的博客和资源有很多,相信百度一下对程序员来说都不是什么难事,推荐看一下敖丙的阿里面试:跟我死磕Synchronized底层实现,我满分回答拿了Offer,讲的挺好的 本文的定位在于,帮助自己和其他有需要的小伙伴,以一种容易记住的方式跟别人交(chui)流(shui),所以很多知识点能不搬运就不搬运了,默认大家都会了 正文 JDK 1.6之后针对Synchronized做了很多的优化,可以说Synchronized现在可以跟JUC包中的工具类相媲美,锁升级功不可没,锁升原创 2021-04-25 19:46:00 · 168 阅读 · 0 评论 -
并发编程系列
前言 汇总一下自己写过的关于多线程的博客,也给自己以后多输出添加点动力和方向 正文 知识点 链接 基本知识大杂烩 待补充 Synchronize 多线程并发编程之Java锁相关 Volatile 待补充 ThreadLocal 待补充 线程池 多线程并发编程之线程池应用及实现原理剖析 JUC之ConcurrentHashMap 待补充 JUC之CopyOnWriteArrayList 写时复制CopyOnWrite AQS 多线程之锁原理及AQS、AQS之acqu原创 2021-04-24 21:12:37 · 85 阅读 · 0 评论 -
并发编程之阻塞队列
七种阻塞队列是哪几个呢?面试的时候,可以都回答上来吗 DA BT LSP,大绅士?老帅 DelayQueue ArrayBlockingQueue LinkedTransferQueue SynchronousQueue PriorityBlockingQueue原创 2021-04-24 18:39:33 · 102 阅读 · 0 评论 -
AQS之acquire方法
前言 JUC(java.util.concurrent)包下的很多并发同步工具类,大多基于AQS(AbstractQueuedSynchronizer 抽象队列同步器)实现加解锁的逻辑,其中acquire()尤为重要。 acquire()是独占式地获取资源,acquireShared()是共享式地获取资源,如ReentrantReadWriteLock的writeLock和readLock; AQS采用模板方法模式实现acquire(),封装了线程获取资源失败后,进入同步队列并阻塞的逻辑。 三个核心方法原创 2021-04-15 17:07:06 · 721 阅读 · 0 评论