新書推薦:
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
66.1
《
SDGSAT-1卫星热红外影像图集
》
售價:HK$
445.8
《
股市趋势技术分析(原书第11版)
》
售價:HK$
221.8
《
汉匈战争全史
》
售價:HK$
99.7
《
恶的哲学研究(社会思想丛书)
》
售價:HK$
109.8
《
不止江湖
》
售價:HK$
98.6
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
154.6
《
双城史
》
售價:HK$
110.9
|
編輯推薦: |
本书以JDK 17长期维护版本为示例,详细地介绍了Java多线程并发相关的知识体系,让读者不仅知其然,而且知其所以然。本书对多线程相关的理论分门别论,层层递进的进行详细的叙述和透彻的分析,既体现了各知识点之间的联系,又兼顾了其渐进性。本书在介绍每个知识点时都给出了该知识点的应用场景,同时配合代码演示,让读者更能明白其实现原理、使用方式。
|
內容簡介: |
本书全面、系统地介绍了Java多线程相关的核心知识点,把官方多线程的核心知识点用链路的方式讲解清楚。读者在学习的过程中需要循序渐进,核心知识点的理解是很重要的。由核心知识点扩展开来就可以形成万物。学习和创造希望读者在此过程中能拥有自已的成长和思维。 全书共分为10章。第1~3章介绍了线程的核心知识点,第4章讲解线程局部变量,第5章介绍Lock锁,第6章讲解原子包,第7章介绍阻塞队列,第8章介绍线程池,第9章讲解线程同步器,第10章是AQS源代码分析。 本书每个章节都有相对应的代码验证环节,提供大量应用实例,每章节均附有习题。 本书适合有一定的Java基础知识,包括语法、结构、面像对象的编程概念。**还有一定的并发编程基础的读者阅读。也可作为计算机相关专业的学习用书和参考教材,以及Java软件开发者的自学用书和研究人员的参考用书。
|
關於作者: |
刘宁萌,资深Java工程师。热爱软件技术行业,机缘巧合进入此行业,希望能给此行业带来一些好的东西。5年Java从业经验,多个开源项目发起人,其中cpdog开源项目已获得JetBrains官方免费开源许可证。
|
目錄:
|
第1章多线程基础(54min)
1.1多线程带来的好处和问题
1.1.1多线程带来的好处
1.1.2多线程带来的问题
1.2进程和线程
1.3线程创建方式
1.4线程启动方式
1.5线程的概念及常用方法
1.5.1线程状态
1.5.2常用方法
1.6线程的优先级
1.7守护线程
小结
习题
第2章多线程进阶(149min)
2.1ThreadGroup类线程组
2.1.1构造器
2.1.2常用方法
2.2Thread线程对象构造器
2.2.1stackSize(栈大小)
2.2.2共享线程局部变量
2.3Thread类常用方法
2.4Thread线程对象异常捕获
2.4.1线程对象自己的异常捕获器
2.4.2所属线程组对象异常捕获器
2.4.3Thread类全局异常捕获器
2.5等待线程对象销毁
2.6线程对象优雅关闭
2.6.1中断相关方法
2.6.2官方响应中断的方法
小结
习题
第3章多线程特性(132min)
3.1引出synchronized对象锁
3.2synchronized对象锁
3.2.1标准对象
3.2.2class对象
3.2.3锁特性
3.3线程死锁的产生
3.3.1JConsole
3.3.2jstack
3.4对象监视器
3.4.1wait()
3.4.2wait(long timeoutMillis)
3.4.3notify()
3.4.4notifyAll()
3.5线程的可见性和重排序
3.5.1可见性
3.5.2重排序
3.6线程生命周期状态
3.6.1NEW
3.6.2RUNNABLE
3.6.3BLOCKED
3.6.4WAITING
3.6.5TIMED_WAITING
3.6.6TERMINATED
小结
习题
第4章ThreadLocal线程局部变量(104min)
4.1在方法链路中传递数据
4.2引出线程局部变量
4.3线程局部变量核心概念
4.3.1Thread对象数据保存点
4.3.2线程局部变量操作入口
4.3.3线程局部变量数据操作功能
4.3.4弱引用介绍
小结
习题
第5章Lock锁(104min)
5.1Lock接口
5.2ReentrantLock
5.2.1构造器
5.2.2常用方法
5.2.3公平锁或非公平锁
5.2.4自旋锁
5.3Condition
5.4ReentrantReadWriteLock
5.4.1构造器
5.4.2共享锁和互斥锁
5.4.3重入特性
5.4.4常用方法
小结
习题
第6章atomic原子包(117min)
6.1AtomicBoolean
6.1.1构造器
6.1.2常用方法
6.2AtomicInteger
6.2.1构造器
6.2.2常用方法
6.3AtomicReference
6.3.1构造器
6.3.2常用方法
6.4AtomicIntegerFieldUpdater
6.4.1对象创建
6.4.2常用方法
6.5AtomicIntegerArray
6.5.1构造器
6.5.2常用方法
6.6LongAdder
6.6.1实现方式
6.6.2常用方法
小结
习题
第7章阻塞队列(216min)
7.1ArrayBlockingQueue
7.1.1构造器
7.1.2常用方法
7.2LinkedBlockingQueue
7.2.1构造器
7.2.2常用方法
7.3LinkedTransferQueue
7.3.1构造器
7.3.2常用方法
7.4SynchronousQueue
7.4.1构造器
7.4.2常用方法
7.5DelayQueue
7.5.1构造器
7.5.2常用方法
7.6PriorityBlockingQueue
7.6.1构造器
7.6.2常用方法
小结
习题
第8章线程池(248min)
8.1ThreadPoolExecutor
8.1.1构造器
8.1.2常用方法
8.2FutureTask
8.2.1构造器
8.2.2常用方法
8.3AbstractExecutorService
8.3.1构造器
8.3.2常用方法
8.4ScheduledThreadPoolExecutor
8.4.1构造器
8.4.2常用方法
小结
习题
第9章线程同步器(152min)
9.1CountDownLatch
9.1.1构造器
9.1.2常用方法
9.2CyclicBarrier
9.2.1构造器
9.2.2常用方法
9.3Semaphore
9.3.1构造器
9.3.2常用方法
9.4Phaser
9.4.1构造器
9.4.2常用方法
小结
习题
第10章AQS源码分析
10.1构造器
10.2常用方法
10.3ConditionObject
小结
|
內容試閱:
|
2005年左右民用的多核CPU正式进入市场,标志着一个新时代来临了。双核和多核处理器设计用于在一枚处理器中集成两个或多个完整执行内核,以支持同时执行并管理多个任务。以前的单核CPU相当于一个人工作,它有很多任务,并很快地在任务之间切换工作,给人们造成的感觉好像是同时在执行,例如我上了一个聊天软件,我又在打游戏,感觉好像在同时执行,实际上单核CPU只是很快速地在各个任务之间切换工作,而多核心CPU相当于有多个人在同时工作,这才是真正意义上的多核心同时工作,当然它们也会在各个任务之间切换调度。
Java的多线程Thread核心类早在JDK 1.0就已经有了,从一开始就确立了Java最基础的线程模型,并且这样的线程模型在后续的修补中,并未发生实质上的变更,可以说是一个具有传承性的良好设计。
随着多核CPU的到来,在2004年发布的JDK 1.5中加入了Executors线程池、Callable、Future异步任务支持、Lock锁、concurrent并发包下的大量工具类,标志着Java多线程的时代来临了。
本书特点
本书以JDK 17长期维护版本为示例,详细地介绍了与Java多线程并发相关的知识体系,让读者不仅知其然,而且知其所以然。本书对多线程相关的理论分门别类、层层递进地进行详细叙述和透彻分析,既体现了各知识点之间的联系,又兼顾了其渐进性。本书在介绍每个知识点时都给出了该知识点的应用场景,同时配合代码演示,让读者更能明白其实现原理、使用方式。本书丰富的免费配套资源包括源代码、笔记、完整的配套视频。
本书主要内容
第1章介绍了Thread线程对象的创建方式、启动方式、常用方法、优先级、守护线程。
第2章介绍了ThreadGroup线程组的概念、线程对象构造器、线程类常用方法、线程对象异常捕获、等待线程对象销毁、线程对象的优雅关闭。
第3章介绍了线程之间的协作,synchronized对象锁、线程死锁的产生、Object对象监视器、线程阻塞等待机制、线程唤醒机制、线程可见性、重排序、线程生命周期状态。
第4章介绍了ThreadLocal线程局部变量的使用、实现机制的核心概念、Reference弱引用。
第5章介绍了Lock锁接口的相关规范,以及ReentrantLock、Condition、ReentrantReadWriteLock。
第6章介绍了atomic原子包、AtomicBoolean、AtomicInteger、AtomicReference、AtomicIntegerFieldUpdater、AtomicIntegerArray、LongAdder。
第7章介绍了BlockingQueue接口的相关规范,及其核心实现类ArrayBlockingQueue、LinkedBlockingQueue、LinkedTransferQueue、SynchronousQueue、PriorityBlockingQueue、DelayQueue。
第8章介绍了ThreadPoolExecutor线程池整个链路的串联、ThreadPoolExecutor线程池的使用,源码分析其核心概念、FutureTask的核心概念、AbstractExecutorService的使用、ScheduledThreadPoolExecutor定时器的使用,源码分析其核心概念。
第9章介绍了线程同步器的使用、CountDownLatch、CyclicBarrier、Semaphore、Phaser。
第10章介绍了AbstractQueuedSynchronizer框架,详细分析了其源码,利用官方文档示例实现自己的同步锁、同步器。
读者对象
所有对Java多线程感兴趣的软件开发人员。
资源下载提示
素材(源码)等资源: 扫描目录上方的二维码下载。
视频等资源: 扫描封底的文泉云盘防盗码,再扫描书中相应章节中的二维码,可以在线学习。
致谢
特别感谢清华大学出版社的赵佳霓编辑。感谢她对本书专业且高效的审阅及对本书提出的建设性意见,有效推动了本书的出版。同时也感谢参与本书出版的所有人员,在大家的辛勤努力下,才有了本书的顺利出版。
刘宁萌2023年2月
|
|