购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

本书是国内首本整本系统、完整地介绍Java多线程技术的书籍,作为笔者,我要感谢大家的支持与厚爱。

本书第1版在出版后获得了广大Java程序员与学习者的关注,技术论坛、博客、公众号等平台大量涌现出针对Java多线程技术的讨论与分享。能为国内IT知识的建设贡献微薄之力是让我最欣慰的。

有些读者在第一时间就根据书中的知识总结了学习笔记,并在博客中进行分享,笔者非常赞赏这种传播知识的精神。知识就要分享,知识就要传播,这样才能共同进步。

第2版与第1版的区别

本书第1版上市后收到了大量的读者反馈,我对每一个建议都细心地进行整理,力求在第2版中得以完善。

第2版在第1版的基础上着重加强了8点更新:

1)大量知识点重排,更有利于阅读与理解;

2)更新了读者提出的共性问题并进行集中讲解;

3)丰富Thread.java类API的案例,使其更具有实用性;

4)对线程的信息进行监控实时采样;

5)强化了volatile语义、多线程核心synchronized的案例;

6)力求知识点连贯,方便深度学习与理解,增加原子与线程安全的内容;

7)深入浅出地介绍代码重排特性;

8)细化工具类ThrealLocal和InheritableThreadLocal的源代码分析与原理。

由于篇幅有限,有关线程池的知识请参考笔者的另一本书—《Java并发编程:核心方法与框架》,那本书中有针对Java并发编程技术的讲解。在向分布式领域进军时还需要用到NIO和Socket技术,故推荐笔者的拙作《NIO与Socket编程技术指南》,希望可以给读者带来一些帮助。

本书秉承大道至简的主导思想,只介绍Java多线程开发中最值得关注的内容,希望抛砖引玉,以个人的一些想法和见解,为读者拓展出更深入、更全面的思路。

本书特色

在撰写本书的过程中,我尽量少用“啰唆”的文字,全部以Demo式案例来讲解技术点的实现,使读者看到代码及运行结果后就可以知道项目要解决的是什么问题,类似于网络中博客的风格,让读者用最短的时间学习知识点,明白知识点如何应用,以及在使用时要避免什么,使读者能够快速学习知识并解决问题。

读者对象

·Java程序员;

·系统架构师;

·Java多线程开发者;

·Java并发开发者;

·大数据开发者;

·其他对多线程技术感兴趣的人员。

如何阅读本书

本书本着实用、易懂的学习原则,利用7章来介绍Java多线程相关的技术。

第1章 讲解了Java多线程的基础,包括Thread类的核心API的使用。

第2章 讲解了在多线程中对并发访问的控制,主要是synchronized的使用。由于此关键字在使用上非常灵活,所以该章用很多案例来说明它的使用,为读者学习同步知识打好坚实的基础。

第3章 讲解了线程之间的通信与交互细节。该章主要介绍wait()、notifyAll()和notify()方法的使用,使线程间能够互相通信,合作完成任务。该章还介绍了ThreadLocal类的使用。学习完该章,读者就能在Thread多线程中进行数据的传递了。

第4章 讲解了Lock对象。因为synchronized关键字使用起来比较麻烦,所以Java 5提供了Lock对象,更好地实现了并发访问时的同步处理,包括读写锁等。

第5章 讲解了Timer定时器类,其内部原理是使用多线程技术。定时器在执行计划任务时是很重要的,在进行Android开发时也会深入使用。

第6章 讲解的单例模式虽然很简单,但如果遇到多线程将会变得非常麻烦。如何在多线程中解决这么棘手的问题呢?本章会全面给出解决方案。

第7章 对前面章节遗漏的技术空白点进行补充,通过案例使多线程的知识体系更加完整,尽量做到不出现技术空白点。

交流和支持

由于笔者水平有限,加上编写时间仓促,书中难免会出现一些疏漏或者不准确的地方,恳请读者批评指正,期待能够得到你们的真挚反馈,在技术之路上互勉共进。

联系笔者的邮箱是279377921@qq.com。

致谢

在本书出版的过程中,感谢公司领导和同事的大力支持,感谢家人给予我充足的时间来撰写稿件,感谢出生3个多月的儿子高晟京,看到你,我有了更多动力,最后感谢在此稿件上耗费大量精力的高婧雅编辑与她的同事们,是你们的鼓励和帮助,引导我顺利完成了本书。

高洪岩 Pc/Iyb4WTXY1c42ts/zaT8hilEB44drCEuqIMO1TMeqdPYc7M6xxceq/bKuxCFXp

点击中间区域
呼出菜单
上一章
目录
下一章
×