
一小时学完java并发编程
文章平均质量分 94
1-4 章是 Java 内存模型,主要提炼程晓明的《深⼊理解 Java 内存模型》,5 章、6 章、9 章主要提炼 Braian Goetz的《Java 并发编程实战》,第 7 章是整理的⽹络博客,第 8 章是提炼我司的多线程项⽬。
菜鸟码神
在代码的世界里,一步一个脚印,菜鸟最终也会逆袭成码神。
展开
-
第四章:final关键字
本章详细讲解了final的内存语义和使⽤⽅式,内存语义主要是涉及到并发编程相关的知识,仅供了解即可。其实我 们最终还是需要注重final的使⽤⽅式,分别从变量、⽅法、类,对⻬进⾏讲解,这块知识很简单,主要是做个记 录,最后是final和static,也是⽹上看到的示例,也只做个简单的记录。原创 2023-10-24 09:40:50 · 146 阅读 · 0 评论 -
第三章:synchronized关键字
该⽂章给⼤家讲解了synchronized的三种应⽤⽅式,指令重排情况分析,以及synchronized的可重⼊性,通过该 ⽂章,基本可以掌握synchronized的使⽤姿势,以及可能会遇到的坑。关于“线程中断与synchronized”的相关知 识,因为篇幅原因就不写了,⼤家可以到⽹上查⼀下相关资料,进⼀步学习。原创 2023-10-12 14:53:03 · 71 阅读 · 0 评论 -
第 二 章:volatile关键字
volatile可以保证线程可⻅性且提供了⼀定的有序性,但是⽆法保证原⼦性。在JVM底层volatile是采⽤“内存屏障”来 实现的。它确保指令重排序时不会把其后⾯的指令排到内存屏障之前的位置,也不会把前⾯的指令排到内存屏障的后⾯;即在执⾏到内存屏障这句指令时,在它前⾯的操作已经全部完成;它会强制将对缓存的修改操作⽴即写⼊主存;如果是写操作,它会导致其他CPU中对应的缓存⾏⽆效。最后也讲解了volatile不适⽤的场景,以及解决的⽅法,并解释了单例模式为何需要使⽤volatile。原创 2023-10-12 14:36:11 · 64 阅读 · 0 评论 -
第一章 并发编程基本概念
今天讲解了Java并发编程的3个特性,然后基于⾥⾯的两个特性“可⻅性”和“有序性”引出⼏个重要的概念,分别为“内 存模型JMM”、“重排序”和“内存屏障”,这个对后续理解volatile、synchronized、final,以及避免使⽤的各种坑, 真的是⾮常⾮常重要!!!所以这块知识要必须!⼀定!!要!!!掌握。不算之前看的内容,光写这篇⽂章就写了⼀个下午。原创 2023-10-12 14:05:19 · 66 阅读 · 0 评论