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

前言

多线程技术在大型互联网系统及大数据处理中有着广泛的应用,它能够更合理地利用系统的硬件资源,提供并发执行任务的能力,使系统处理数据的效率大大提高。因此,掌握好了多线程技术,手中就多了一把利器,以前一些系统应用中遇到的问题也都可以迎刃而解了。同时,理解透彻常用的多线程的数据处理方法,也为我们开发处理能力更为卓越的系统提供了方向和可行性。

Java对多线程提供了全方位的支持,其具备多种线程的创建方法,能按照自己的需要创建合适的线程。Java提供了线程组和线程池,方便管理多线程。对于多线程的调度,Java也提供了多种方法,可以满足众多场景下的多线程处理。同时,还可以设置线程的优先级、守护线程等。对于多线程的并发,可以进行同步和异步操作。Java的多线程并发处理包中也提供了如信号量、多线程计数器等众多并发处理辅助工具。所以,相比起其他一些较为偏门的编程语言,以Java的多线程作为入口,能够帮助开发人员更为全面地理解多线程的相关知识。

多线程对于入门级别的开发人员来说,难度会略高于其他的编程基础知识点。但它并非“奇技淫巧”,相反,当需要开发性能更高、处理数据量更大的系统时,多线程的重要性就越发突显。

本书特色

(1)内容实用,图文并茂,提供众多生活中的案例,并将浅明的例子融入开发中。书中每讲解一个多线程的知识点,作者都尽力去寻找身边或生活中合适的、易懂的例子,将问题融入代码中进行解决。同时,对于一些较难用言语表达清楚的知识点,作者都尝试加入示意图,作为补充说明。

(2)多线程与大数据处理相结合,同时引入了一些主流的大数据中间件,结合多线程的知识点,进行大数据处理系统的开发。本书使用了许多主流的开源框架,如Spring Boot、Spring Batch、Netty等,以及大数据消息中间件Kafka、大数据任务调度框架Quartz等。

本书内容及体系结构

第1章 Java多线程基础

本章从Java单线程的简介开始,慢慢地引出多线程的内容;同时通过简单的示例,帮助读者了解线程的多种建立方式。通过这样的对比,大家可以轻松地掌握多种编写简单线程的方法。

第2章 线程的生命周期

本章将从线程的多种状态及生命周期来更深入地讲解线程,这样可在实际开发多线程中更好地理解和分析一些问题,即知其然并知其所以然。

第3章 多线程的调度方式

本章将讲解多线程的另一个重要内容:线程之间的调度。由操作系统的调度原理入手,讲解Java多线程之间的调度;同时,通过实例讲解睡眠、唤醒、让步、插队等不同情况下的线程调度方式。

第4章 多线程的线程组与线程池

本章介绍的线程组和线程池是Java多线程中的两个应用,特别是线程池,其在许多商业和企业级的系统中都会使用。所以,了解线程组,学习和运用好线程池对开发真正的企业级系统非常有帮助。

第5章 多线程的异常处理

本章介绍的异常处理是每一个企业级项目中都必须存在的重要且必要的环节。好的系统当然需要良好的异常处理机制来保证系统的健壮性。

第6章 多线程定时任务TimerTask

本章将介绍Java自带的多线程定时任务TimerTask工具,其在创建任务的过程中,实际上也会创建一个新的线程。

第7章 多线程并发处理

从本章开始,讲解一些线程及多线程情况下的线程的高级特性,其中多线程的并发处理是重点和难点。能够把握好多线程的并发处理,基本上就掌握了运用多线程的能力。

第8章 批处理Spring Batch与多线程

本章将讲解大数据批处理框架Spring Batch。同时,Spring Batch能在Step中使用多线程,实现在大数据情况下批处理过程的再次加速。

第9章 大数据任务调度框架Quartz与多线程

本章介绍的Quartz是Java大数据任务调度框架,其已经在许多大型的商用软件中发挥了重要的作用,能更好地替代TimerTask定时任务工具。

第10章 大数据中间件Kafka与多线程

本章将讲解大数据中间件Kafka。在分布式的子系统、微服务之间的通信中,经常会使用到消息队列(Message Queue, MQ)。其中,Kafka作为大数据MQ,其在大数据处理上有着突出的表现。

第11章 多线程实战训练

本章将通过几个简单的小项目,抛砖引玉,让大家多思考,看看是否也可以在自己的业务开发中或更大的项目中引入类似的多线程处理功能。 M5jhn7J2cYSV6x1EMsRK3deWLF1DNnrCfVcn2r69SZdMMVTnmrSQ14Flh78thaBi

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