Java多線程與大數(shù)據(jù)處理實(shí)戰(zhàn)
本書(shū)對(duì) Java 的多線程及主流大數(shù)據(jù)中間件對(duì)數(shù)據(jù)的處理進(jìn)行了較為詳細(xì)的講解。本書(shū)主要講了 Java 的線程創(chuàng)建方法和線程的生命周期,方便我們管理多線程的線程組和線程池,設(shè)置線程的優(yōu)先級(jí),設(shè)置守護(hù)線程,學(xué)習(xí)多線程的并發(fā)、同步和異步操作,了解 Java 的多線程并發(fā)處理工具(如信號(hào)量、多線程計(jì)數(shù)器)等內(nèi)容。同時(shí),本書(shū)還引入了 Spring Boot、Spring Batch、Quartz、Kafka 等大數(shù)據(jù)中間件。這為學(xué)習(xí)Java 多線程和大數(shù)據(jù)處理的讀者提供了良好的參考。多線程和大數(shù)據(jù)的處理是許多開(kāi)發(fā)崗位面試中最容易被問(wèn)到的知識(shí)點(diǎn),一些一線開(kāi)發(fā)的重要崗位面試會(huì)將多線程作為壓軸問(wèn)題或重要的考察點(diǎn)。所以,學(xué)好多線程的知識(shí)點(diǎn),無(wú)論是對(duì)于日后的開(kāi)發(fā)工作,還是正要前往一線開(kāi)發(fā)崗位的面試準(zhǔn)備,都是非常有用的。
本書(shū)既適合高等院校的計(jì)算機(jī)類(lèi)專(zhuān)業(yè)的學(xué)生學(xué)習(xí),也適合從事軟件開(kāi)發(fā)相關(guān)行業(yè)的初級(jí)和中級(jí)開(kāi)發(fā)人員。
李建平,從小學(xué)開(kāi)始接觸編程,并多次在參賽中獲獎(jiǎng)。大學(xué)選擇自己喜歡的軟件工程專(zhuān)業(yè)進(jìn)行了更為系統(tǒng)的學(xué)習(xí)。本科畢業(yè)之后,先后在中興通訊、匯豐銀行(HSBC)、廣電運(yùn)通研究院等數(shù)據(jù)處理部門(mén)擔(dān)任過(guò)一線的中級(jí)、高級(jí)軟件研發(fā)工程師等職務(wù)。能熟練使用Java、Python等處理大數(shù)據(jù),并擁有10年以上的開(kāi)發(fā)經(jīng)驗(yàn)。
第1章 Java多線程基礎(chǔ) 1
1.1 初識(shí)線程 2
1.2 Java線程的創(chuàng)建方法 8
1.3 搭建集成開(kāi)發(fā)環(huán)境運(yùn)行Java多線程 18
第2章 線程的生命周期 24
2.1 線程的狀態(tài) 25
2.2 線程的生命周期 33
2.3 多線程的優(yōu)先級(jí) 40
第3章 多線程的調(diào)度方式 49
3.1 多線程的調(diào)度概述 50
3.2 線程的睡眠、等待與讓步 52
3.3 多線程的喚醒 60
3.4 多線程的插隊(duì) 62
第4章 多線程的線程組與線程池 71
4.1 線程組 72
4.2 線程池 79
4.3 多線程管理 93
第5章 多線程的異常處理 97
5.1 異常的基本概念 98
5.2 Java中的異常處理 100
5.3 Java多線程的異常 103
5.4 自定義多線程異常處理 109
第6章 多線程定時(shí)任務(wù)TimerTask 112
6.1 定時(shí)任務(wù) 113
6.2 多線程定時(shí)任務(wù) 118
第7章 多線程并發(fā)處理 122
7.1 多線程的并發(fā)基礎(chǔ) 123
7.2 Java的多線程的同步 133
7.3 多線程的異步 144
7.4 多線程的并發(fā)處理工具 149
第8章 批處理Spring Batch與多線程 157
8.1 Spring Batch概述 158
8.2 Spring Batch的監(jiān)聽(tīng)機(jī)制 164
8.3 Spring Batch的事務(wù)處理機(jī)制 167
8.4 Spring Batch與多線程 177
第9章 大數(shù)據(jù)任務(wù)調(diào)度框架Quartz與多線程 181
9.1 Quartz概述 182
9.2 Quartz的持久化 183
9.3 Quartz中的多線程設(shè)置 189
第10章 大數(shù)據(jù)中間件Kafka與多線程 206
10.1 大數(shù)據(jù)中間件Kafka概述 207
10.2 Kafka的組件 209
10.3 Kafka的高可用方案 212
10.4 Kafka的安裝與配置 213
10.5 Kafka的多線程 219
第11章 多線程實(shí)戰(zhàn)訓(xùn)練 225
11.1 多線程模擬交通信號(hào)燈 226
11.2 多線程處理多文件上傳 235
11.3 多線程加速數(shù)據(jù)獲取 251
11.4 大數(shù)據(jù)消息中心的設(shè)計(jì) 264