思维导图安排
Java多线程编程实战
第1章Java多线程编程实战基础
对多线程编程基础进行了回顾,虽然该章讲的是基础,但重点仍然是强调“实战”所谓“温故而知新”,有一定多线程编程基础、经验的读者也不妨快速阅读一下本章, 说不定有新的收获。
主要内容展示:
第2章设计模式简介
第3章Immutable Object (不可变对象)模式
设计模式(Design Pattern)是软件设计中给定背景(Context) 下 普遍存在的问题一般性 可复用的解决方案。这个定义可能有点抽象,但是我们可以先了解一下设计模式的历史由来以对其有个感性的认识。
多线程共享变量的情况下,为了保证数据一致性, 往往需要对这些变量的访问进行加锁。而锁本身又会带来一些问题和开销。Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线程安全,又能避免引入锁可能带来的问题和开销。
主要内容展示:
第4章Guarded Suspension (保护性暂挂)模式
多线程编程中,为了提高并发性,往往将一个任务分解为不同的部分,将其交由不同的线程来执行。这些线程间相互协作时,仍然可能会出现-一个线程去等待另一个线程完成一定的操作,其自身才能继续运行的情形。这好比汽车行驶过程中油量不足时,司机只好到加油站等工作人员将油加满才能继续行驶。
主要内容展示:
第5章Two-phase Termination (两阶段终止)模式
停止线程是一个目标简单而实现却不那么简单的任务。首先,Java没有提供直接的API用于停止线程'。此外,停止线程还有一些额外的细节需要考虑,如待停止的线程处于阻塞(如等待锁)或者等待状态(等待其他线程)、尚有未处理完的任务等。
主要内容展示:
第6章Promise (承诺)模式
Promise模式是一种异步编程模式。它使得我们可以先开始一一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,而不必等待该任务执行完毕就可以继续执行其他操作。
主要内容展示:
这份Java多线程并发编程的pdf已经整理打包好,由于篇幅限制,就将主要内容截图了下来(没有缺页的情况),需要完整内容的朋友帮忙转发+关注,后台回复即可免费获取~
第7章Producer-Consumer (生产者/消费者)模式
Producer-Consumer模式可以看成是设计模式的设计模式。
主要内容展示:
第8章Active Object (主动对象)模式
Active Object模式是一种异步编程模式。它通过对方法的调用(Method Invocation)与方法的执行(Method Execution)进行解耦(Decoupling)来提高并发性。若以任务的概念来说,ActiveObject模式的核心则是它允许任务的提交(相当 于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。
主要内容展示:
第9章Thread Pool (线程池)模式
一个系统中的线程相对于其所要处理的任务而言,总是一种非常有限的资源。线程不仅在其执行任务时需要消耗CPU时间和内存等资源,线程对象(Thread 实例)本身以及线程所需的调用栈(Call Stack)也占用内存,并且Java中创建一个线程往往意味着JVM会创建相应的依赖于宿主机操作系统的本地线程(Native Thread)。
主要内容展示:
第10章Thread Specific Storage (线程特有存储)模式
多线程相关的问题如线程安全、死锁等归根究底是多线程共享变量导致的。有鉴于此,Thread Specific Storage 模式通过不共享变量实现了线程安全,并由此自然地避免了与锁的消耗及与之有关的问题。
主要内容展示:
第11章Serial Thread Confinement (串行线程封闭)模式
Serial Thread Confinement模式的核心思想是通过将多个并发的任务存入队列实现任务的串行化,并为这些串行化的任务创建唯一的一个 工作者线程进行处理。
主要内容展示:
第12章Master-Slave (主仆)模式
Master-Slave模式是一个基于分而治之(Divide and conquer)思想的设计模式。其核心思想是将一个任务(原始任务)分解为若干个语义等同( Semantically-identical)的子任务,并由专门的工作者线程来并行执行这些子任务。
主要内容展示:
第13章Pipeline (流水线)模式
Pipeline模式的核心思想是将一个任务处理分解为若干个处理阶段(Stage), 其中每个处理阶段的输出作为“下一个处理阶段的输入,并且各个处理阶段都有相应的工作者线程去执行相应的计算。
主要内容展示:
第14章Half-sync/Half-async (半同步/半异步)模式
Half-sync/Half-async模式集成了同步编程和异步编程的优势,它通过同步任务和异步任务的共同协作来完成一个计算,既保持了同步编程的简单性,又充分发挥异步编程在提高系统并发性方面的优势。
主要内容展示:
第15章模式语言
设计模式并不是孤立的,一个设计模式往往和其他设计模式存在某些关联
主要内容展示:
这份Java多线程并发编程的pdf已经整理打包好,由于篇幅限制,就将主要内容截图了下来(没有缺页的情况),需要完整内容的朋友帮忙转发+关注,后台回复即可免费获取~
添加小助理领取更多免费Java架构等学习资料和视频~