今天想把代码世界比较难的部分并发编程讲给大家听,提到并发编程,各种锁不得不提,他们难舍难分。
你听说过的锁有什么?互斥锁、自旋锁、偏向锁、轻量级锁、重量级锁、公平/非公平锁,读写锁,可重入锁......是不是已经很烦了,不过看完今天这篇,这些名词都和1+1一样简单。
还是强调一下,用“面向思想”的方式去学习技术,事半功倍。
并发编程的好处大家再清楚不过了,提高性能,增加吞吐量......可对于初级程序员来讲,很难接触到,甚至某些工作两三年的,如果面试你问是不是有并发编程的经验时,他们也只会回答说用过线程池。
如果把并发编程比喻成“屠龙刀”的话,我更喜欢把“锁”比如成“倚天剑”,俗话说的好,倚天屠龙,谁与争锋?
所以,学好并发编程这把屠龙宝刀,更要掌握“锁”这把倚天剑。今天LZ就将并发编程的学习笔记+Xmind整理出来了:
Java并发集合Xmind
Java内存模型(JMM)Xmind
ThreadLocal+Fork/Join Xmind
并发工具类 Xmind
并发基础 Xmind
线程池 Xmind
阻塞队列
在学习的时候有对应的学习思维导图,这样才可以更快更高效的学习,结合Java并发编程的学习文档也会查漏补缺~
Java并发编程实践——433页(附代码清单)
Java 5.0是在使用Java开发并发应用程序的进程中,迈出的巨大一步。它提供了新的高层组件以及更多的低层机制,这些将使得一名新手更容易像专家那样去构建并发应用程序。
pdf主要内容展示
Java多线程编程核心技术——322页
结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践。
pdf主要内容展示
20个高并发编程必备的知识点——33页
- 问题一:什么是线程安全问题?
- 问题二:什么是共享变量可见性问题?
- 问题三:原子性?
- 问题四: CAS介绍?
- 问题五:什么是可重入锁?
- 问题六: Synchronized关键字?
- 问题七: ReentrantReadWriteLock介绍?
- 问题八:Volatile变量?
- 问题九:乐观锁与悲观锁?
- 问题十:独占锁与共享锁?
- 问题十一:公平锁与非公平锁?
- 问题十二: AbstractQueuedSynchronizer介绍?
- 问题十三: CountDownLatch原理?
- 问题十四: ReentrantLock独占锁原理?
- 问题十五:ReentrantReadWriteLock原理?
- 问题十六:什么是重排序问题?
- 问题十七:什么是中断?
- 问题十八: FutureTask 原理?
- 问题十九:ConcurrentHashMap原理简述?
20个问题答案解析:
并发编程——181页
- 1.概览
- 2.进程与线程
- 3. Java线程
- 4.共享模型之管程
- 5.共享模型之内存
- 6.共享模型之无锁
- 7.共享模型之不可变
- 8.共享模型之工具
pdf主要内容展示:
并发编程:原理篇——106页
- 指令级并行原理
- CPU缓存结构原理
- volatile原理
- final原理
- Monitor原理
- synchronized原理
- synchronized原理进阶
- wait notify原理
- join原理
- park unpark原理
- AQS原理
- ReentrantLock原理
- 读写锁原理
- Semaphore原理
- ConcurrentHashMap原理
- LinkedBlockingQueue原理
- ConcurrentLinkedQueue原理
pdf主要内容展示
并发编程:应用篇——27页
- 效率
- 限制
- 互斥
- 同步和异步
- 缓存
- 分治
- 統筹
- 定时
pdf主要内容展示
并发编程:模式篇——33页
- 同步模式之保护性暂停
- 同步模式之Balking
- 同步模式之顺序控制
- 异步模式之生产者/消费者
- 异步模式之工作线程
- 终止模式之两阶段终止模式
- 线程安全单例
- 享元模式
pdf主要内容展示