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