借用 Java 并发编程实践中的话;编写正确的程序并不容易,而编写正常的并发程序就更难了;相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的。
并发编程相比 Java 中其他知识点学习起来门槛相对较高,学习起来比较费劲,从而导致很多人望而却步;而无论是职场面试和高并发高流量的系统的实现却都还离不开并发编程,从而导致能够真正掌握并发编程的人才成为市场比较迫切需求的。
本 Chat 作为 Java 并发编程之美系列的并发编程必备基础晋级篇,通过通俗易懂的方式来和大家聊聊多线程并发编程中涉及到的高级基础知识(建议先阅读Java 并发编程之美:线程相关的基础知识
),具体内容如下:
- 什么是多线程并发和并行。
- 什么是线程安全问题。
- 什么是共享变量的内存可见性问题。
- 什么是Java中原子性操作,AtomicLong实现原理。
- 什么是Java中的CAS操作。
- 什么是Java指令重排序。
- Java中Synchronized关键字的内存语义是什么。
- Java中Volatile关键字的内存语义是什么。
- 什么是伪共享,为何会出现,以及如何避免
- 什么是可重入锁、乐观锁、悲观锁、公平锁、非公平锁、独占锁、共享锁。
识别下面二维码进入chat