中图网(原中国图书网):网上书店,中文字幕在线一区二区三区,尾货特色书店,中文字幕在线一区,30万种特价书低至2折!

歡迎光臨中圖網(wǎng) 請 | 注冊
> >>
Java多線程與大數(shù)據(jù)處理實戰(zhàn)

包郵 Java多線程與大數(shù)據(jù)處理實戰(zhàn)

作者:李建平著
出版社:北京大學(xué)出版社出版時間:2020-04-01
開本: 26cm 頁數(shù): 304頁
中 圖 價:¥56.3(7.1折) 定價  ¥79.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

Java多線程與大數(shù)據(jù)處理實戰(zhàn) 版權(quán)信息

Java多線程與大數(shù)據(jù)處理實戰(zhàn) 本書特色

多線程處理一直是金融業(yè)務(wù)系統(tǒng)開發(fā)的核心內(nèi)容。作者憑借自身多年銀行金融系統(tǒng)后臺開發(fā)經(jīng)驗,在傳統(tǒng)獨立自研金融類業(yè)務(wù)的基礎(chǔ)上,結(jié)合互聯(lián)網(wǎng)大數(shù)據(jù)技術(shù),通過多個項目的系統(tǒng)架構(gòu)實踐,總結(jié)編寫出本書。該書內(nèi)容非常有價值,值得廣大Java開發(fā)人員學(xué)習(xí)。 ——張夏 廣電運通研究院研發(fā)經(jīng)理 我和作者曾是國內(nèi)某高等院校的同窗。他思維敏銳,富有創(chuàng)新精神。他對知識孜孜不倦的追求精神令我印象深刻。本書系統(tǒng)地講解了Java多線程的各個基礎(chǔ)知識點,并突出了重點和難點,值得推薦。 ——陳友佳 中國yc總公司汕頭市專賣局高級信息化工程師 作者用通俗易懂的語言、豐富詳盡的實例向讀者展示了一幅Java編程之美與大數(shù)據(jù)處理之巧交織輝映的美好畫卷。這無疑是Java開發(fā)人員在多線程與大數(shù)據(jù)處理領(lǐng)域的必讀書目之一。 ——黃海華 廣州銀行信用卡中心數(shù)據(jù)分析師 我曾與作者有過大數(shù)據(jù)相關(guān)項目的合作,對作者在Java與大數(shù)據(jù)方面的造詣印象深刻。在寫作本書的過程中,作者系統(tǒng)地整理了自己多年來的工程實踐經(jīng)驗,并融入了大量實例,深入淺出地闡述了極具實用價值的技術(shù)。 ——王曉舜 廣州邁靈信息科技有限公司技術(shù)總監(jiān) 作者系統(tǒng)地講解了Java多線程的各個要點,并加入了大量的手繪圖表,列舉了相關(guān)的大數(shù)據(jù)實例,使本書具有重要的參考價值。誠心向從事該領(lǐng)域工作的人員推薦本書。 ——劉順鑫 深圳易聽教育科技有限公司高級產(chǎn)品經(jīng)理 作者在系統(tǒng)業(yè)務(wù)開發(fā)工作中謹慎認真的態(tài)度及富有創(chuàng)新的精神讓我敬佩。也正是這些良好的品質(zhì),讓他成為一名優(yōu)秀的大項目開發(fā)負責(zé)人。本書以理論與實踐相結(jié)合的方式進行知識的講解,因此我非常樂意向大家推薦該書。 ——彭展謙 廣州翰智軟件有限公司流通與工程業(yè)務(wù)部總經(jīng)理 早年合作期間,我就對作者的思維分析、表達能力及編程技巧的掌握都非常認可。本書運用了大量的實例來進行深入淺出的說明,內(nèi)容充實而生動,處處體現(xiàn)了Java語言的魅力。我非常樂意向大家推薦本書。 ——林正曉 中國移動通信集團廣東有限公司湛江分公司高級系統(tǒng)項目管理師 我曾與作者有過不少項目接觸,也曾向作者提出過關(guān)于大數(shù)據(jù)的一些問題,對于這些問題,作者都能夠快速地運用合適的技術(shù)方案加以解決。當(dāng)我得知其要出版有關(guān)大數(shù)據(jù)處理的書籍時,已迫不及待要一探究竟,同時希望廣大讀者在讀完此書后也能收益頗豐。 ——賴嘉文 東莞市微享時代網(wǎng)絡(luò)科技有限公司技術(shù)總監(jiān)

Java多線程與大數(shù)據(jù)處理實戰(zhàn) 內(nèi)容簡介

本書主要講了Java的線程創(chuàng)建方法和線程的生命周期, 方便我們管理多線程的線程組和線程池, 設(shè)置線程的優(yōu)先級, 設(shè)置守護線程, 學(xué)習(xí)多線程的井發(fā)、同步和異步操作, 了解Java的多線程并發(fā)處理工具 (如信號量、多線程計數(shù)器) 等內(nèi)容。

Java多線程與大數(shù)據(jù)處理實戰(zhàn) 目錄

第1章 Java多線程基礎(chǔ) 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章 多線程的調(diào)度方式 49
3.1 多線程的調(diào)度概述 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章 多線程定時任務(wù)TimerTask 112
6.1 定時任務(wù) 113
6.2 多線程定時任務(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)聽機制 164
8.3 Spring Batch的事務(wù)處理機制 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章 多線程實戰(zhàn)訓(xùn)練 225
11.1 多線程模擬交通信號燈 226
11.2 多線程處理多文件上傳 235
11.3 多線程加速數(shù)據(jù)獲取 251
11.4 大數(shù)據(jù)消息中心的設(shè)計 264
展開全部

Java多線程與大數(shù)據(jù)處理實戰(zhàn) 節(jié)選

第1章 Java多線程基礎(chǔ) 1.1 初識線程 首先介紹線程的概念。我們可以把線程看作有活力、有生命力的,它是讓看似安靜的一段段代碼活動起來的一種形式。在學(xué)習(xí)本章前,讀者如果已經(jīng)進行過Java簡易入門基礎(chǔ)的學(xué)習(xí),那么理解線程會是一件非常容易的事情。理解了線程的概念后,會由單線程向多線程進軍。 1.1.1 線程是什么? 如今,智能手機與我們的生活密不可分。智能手機之所以這樣吸引我們,與其能提供豐富多彩的應(yīng)用程序有密切的關(guān)系。在使用這些應(yīng)用程序,如查閱資訊、單擊圖標(biāo)、拉取列表、播放視頻和音樂等時,會給人們以視覺和聽覺上的享受。同時,智能手機能及時地對我們的操作進行反饋,非常友好。這里的每一次反饋,都可能是有一個線程在專心致志地為我們服務(wù)。所以,看似陌生的線程實際上已經(jīng)默默服務(wù)人們多時。 每一個剛接觸程序設(shè)計的初級人員,在學(xué)習(xí)了某種編程語言后都會開始嘗試編寫一些基本的短小的代碼段。在Java中,這些短小的代碼段一般會被放入一個class,然后保存到一個擴展名 為.java的文件中;之后通過命令行或集成開發(fā)環(huán)境工具的編譯,生成.class文件并讓這個.class文件運行起來,得到我們想要的結(jié)果。 例如,有一個簡單的模仿游戲打開寶箱得到禮品的程序代碼,參考如下: 1 public class OpenBox { 2 public static void main(String[] args) { 3 //設(shè)置寶箱中可能包含的水果 4 List fruits = new ArrayList(); 5 fruits.add("green apple"); 6 fruits.add("red apple"); 7 fruits.add("banana"); 8 fruits.add("cherry"); 9 fruits.add("watermelon"); 10 //獲取隨機的下標(biāo),用于生成隨機的水果,范圍為0至*大水果鏈表的下標(biāo) 11 Random randomUtil = new Random(); 12 int randomInt = randomUtil.nextInt(fruits.size()); 13 System.out.println("打開寶箱,得到了" + 14 fruits.get(randomInt) + "!"); 15 } 16 } 我們將其以文件形式保存到系統(tǒng)中,如圖1.1所示。 圖片包含 屏幕截圖 描述已自動生成 圖1.1 已經(jīng)保存到系統(tǒng)的Java的類文件 這樣,該文件中就包含了我們想要運行的一小段程序。當(dāng)使用Java的命令或單擊集成開發(fā)環(huán)境的run按鈕時,程序就會運行起來,并且按照編寫好的邏輯反饋相關(guān)信息。OpenBox的運行結(jié)果如圖1.2所示。 圖1.2 OpenBox的運行結(jié)果 以上這些看似簡單的操作過程,可以讓我們更好地理解以下幾個概念:程序、進程、線程。 程序可以理解為個人的思維整合所設(shè)計和編寫的一種有特殊意義的文本作品,其包含一些有特殊含義的詞匯、符號、數(shù)據(jù)及短語縮寫,俗稱代碼。程序本身是一種靜態(tài)的文本作品,但通過特殊的環(huán)境,能讓其產(chǎn)生動態(tài)的邏輯和具備運算能力。 上文中的OpenBox.java文件中的文本內(nèi)容就是程序。 進程則是對某程序的運行過程。一般地,一份程序的一次運行能產(chǎn)生一個進程,進程是一個動態(tài)的概念。進程的運行是需要用到程序的內(nèi)容的,更確切地說,進程的運行離不開程序,離不開程序中有特殊含義的文本。實際上,進程運行中有專門存放這些文本的區(qū)域,該區(qū)域稱為代碼文本區(qū)域。程序與進程是一對多的關(guān)系,即一個程序可以同時運行一個或多個進程。單擊集成開發(fā)環(huán)境的run按鈕時,OpenBox.java對應(yīng)的一個進程就立刻產(chǎn)生了。 理解好程序和進程的關(guān)系,就可以對線程加以描述和解釋。線程是比進程更細小的一級劃分,線程可以利用進程所擁有的資源,并且能獨立完成一項任務(wù),如計算、輸出顯示信息等。在引入線程的操作系統(tǒng)中,通常是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調(diào)度的基本單位。進程與線程也是一對多的關(guān)系,即一個進程中至少有一個線程與之對應(yīng)。如果一個進程中有多個線程同時存在,那么就是多線程的進程。上面的OpenBox.java程序運行時,其在產(chǎn)生一個進程的同時,也產(chǎn)生了一個單線程與之對應(yīng)。也就是說,當(dāng)運行OpenBox.java程序時,該行為所產(chǎn)生的進程是一個單線程進程。 程序、進程、線程的關(guān)系如圖1.3所示。 圖1.3 程序、進程、線程的關(guān)系 知識拓展 近年來,隨著大數(shù)據(jù)的興起,對于大數(shù)據(jù)的處理要求比傳統(tǒng)的普通數(shù)據(jù)處理要求有了更高的標(biāo)準(zhǔn),Java在大數(shù)據(jù)的處理方面也在不斷地優(yōu)化,特別是在開源社區(qū)中,許多開發(fā)貢獻者提供了許多大數(shù)據(jù)處理相關(guān)的組件和中間件。其中一個稱為quasar的組件實現(xiàn)了Java的纖程。纖程是比線程更小的一級劃分,它所占用的系統(tǒng)資源更少,可以理解為更輕量級的一種特殊線程。一般地,從占用系統(tǒng)資源的大小方面來說,可以這樣排序:進程 > 線程>纖程。本小節(jié)不展開對纖程的介紹,有興趣的讀者可以通過quasar的開源地址(https://github.com/puniverse/quasar)了解相關(guān)內(nèi)容。 1.1.2 單線程與多線程 在1.1.1小節(jié)的講解中,我們知道了一個進程至少包含一個線程。如果該進程只有一個線程,則將其稱為單線程的進程。對于簡單的應(yīng)用程序,的確只要單線程就可以了;但對于一些復(fù)雜的應(yīng)用程序,如與人的交互和反饋比較多時,就需要多線程來完成這些任務(wù)。一些大型的軟件和游戲等應(yīng)用程序,一般都包含了多線程來豐富整個系統(tǒng)的功能,以獲得強大的處理性能,或者通過多狀態(tài)的即時反饋來增加趣味性。 例如,圖1.4所示的經(jīng)典任天堂FC游戲,雖然是簡單的游戲,但卻給許多青少年帶來了快樂。 圖1.4 經(jīng)典任天堂FC游戲 這些游戲中都加入了多線程,玩家可以獲得更多的快樂體驗和反饋。多線程能讓一個游戲充滿活力,讓游戲中的物體活動起來。下面我們來看看“超級馬里奧”系列某款游戲的一個畫面中的一些多線程,如圖1.5所示。 圖1.5 “超級馬里奧”系列某款游戲中的線程 圖1.5中,玩家手柄控制的主角馬里奧是一個獨立的線程,能吃的、會走動的蘑菇是一個獨立的線程,而行走中的敵人香菇君也是一個獨立的線程,另外背景音樂也是一個線程。當(dāng)然,這幅游戲畫面中還有許多其他的線程在工作,這些眾多的線程共同組成了這一生動活潑的經(jīng)典游戲。讀者可以思考這款游戲中還有哪些線程在默默地為游戲玩家提供服務(wù)。 這樣的一個游戲?qū)嵗瑢嶋H上也是一個進程。我們可以看到,一個進程可以包含一個或多個線程。單線程的進程雖然也存在,但實際上我們更多的會使用多線程的進程。 1.1.3 多線程的優(yōu)勢 多線程的優(yōu)勢在前面的小節(jié)中已經(jīng)有粗略介紹,本小節(jié)將再次從系統(tǒng)的外在表現(xiàn)和內(nèi)在表現(xiàn)兩方面來講解多線程的優(yōu)勢,如圖1.6所示。 圖片包含 地圖, 文字 描述已自動生成 圖1.6 多線程的優(yōu)勢 (1)由于有多個線程分工合作,所以有時候用戶使用一個線程提供的功能時,另一個線程已經(jīng)準(zhǔn)備著為用戶提供下一步的功能,能節(jié)省用戶的等待時間。 (2)如果能合理地結(jié)合硬件資源來設(shè)計好多線程的并發(fā),讓系統(tǒng)處于合理的多線程調(diào)度模式,就能提高系統(tǒng)吞吐率,讓系統(tǒng)具備高效的處理能力。 從系統(tǒng)的外在表現(xiàn)來看,多線程能快速反饋用戶的多種操作。如果只有單一的線程,那么其處理簡單的邏輯可以做到又快又好,但有時,某些需求可能需要處理大量的數(shù)據(jù),這時,如果還是分派給單一的線程來完成,就可能需要花費比較長的時間,這樣對于該軟件或應(yīng)用程序的使用者來說,體驗感會大打折扣。 我們可以把一個線程處理數(shù)據(jù)的邏輯比喻成將城區(qū)南岸的車輛通過橋梁開至北岸的過程,每一輛車都是需要處理的一個小數(shù)據(jù),如圖1.7所示。 圖1.7 普通流量情況下的車輛過橋 當(dāng)車輛少時,車的通行的確非常暢順,一座橋梁就足以應(yīng)對。但當(dāng)車輛非常多時,如果只有一座橋梁,可能就不能滿足快速通行的需求,如圖1.8所示。 圖1.8 擁擠的大車流過橋 看到這種情形,許多讀者可能會想到,如果南北兩岸足夠廣闊,那么只需要多建幾座橋梁就可以讓大量的車輛分流,從而達到快速通行的目的。當(dāng)建了幾座橋梁后,這些擁堵的車輛就可以就近選擇合適的橋梁分流通行,如圖1.9所示。 圖1.9 多座橋梁的情況下,多通道解決大車流過橋 其實,我們在進行數(shù)據(jù)處理時,如果發(fā)現(xiàn)一個線程處理能力不足而不能快速響應(yīng)時,就可以通過類似“多建幾座橋梁”的方式來幫助我們處理數(shù)據(jù),即可以引入多線程來處理這樣的大數(shù)據(jù)。 同時,使用多線程的軟件或應(yīng)用程序一般能在同一時間給予我們更多感知上面的滿足。例如,我們在使用虛擬線程娛樂設(shè)備時,除了眼睛能觀察到的動畫外,一般會伴有當(dāng)前情景下的背景音樂,甚至有些輸入設(shè)備如震動手柄等會按情景震動起來,讓用戶沉浸式地進入一個虛擬場景。 從系統(tǒng)的內(nèi)在表現(xiàn)來看,多線程能更有效地利用系統(tǒng)資源,特別是CPU的計算和磁盤的存儲I/O資源等。另外,使用多線程能讓系統(tǒng)更好地分工,可以把一個大任務(wù)拆分成多個關(guān)聯(lián)的小任務(wù)。例如,一個大數(shù)據(jù)文件集合的內(nèi)容修改功能,拆分成讀文本內(nèi)容、修改文本內(nèi)容、保存文本內(nèi)容三個線程來獨立處理,只要控制好先后順序,就能達到多線程并發(fā)處理的目的。

Java多線程與大數(shù)據(jù)處理實戰(zhàn) 作者簡介

  李建平,從小學(xué)開始接觸編程,并多次在參賽中獲獎。大學(xué)選擇自己喜歡的軟件工程專業(yè)進行了更為系統(tǒng)的學(xué)習(xí)。本科畢業(yè)之后,先后在中興通訊、匯豐銀行(HSBC)、廣電運通研究院等數(shù)據(jù)處理部門擔(dān)任過一線的中級、高級軟件研發(fā)工程師等職務(wù)。能熟練使用Java、Python等處理大數(shù)據(jù),并擁有10年以上的開發(fā)經(jīng)驗。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 专业音响设备_舞台音响设备_会议音响工程-首选深圳一禾科技 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 温室大棚建设|水肥一体化|物联网系统 | 韦伯电梯有限公司| 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 顺辉瓷砖-大国品牌-中国顺辉| 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 上海办公室装修,写字楼装修—启鸣装饰设计工程有限公司 | 导电银胶_LED封装导电银胶_半导体封装导电胶厂家-上海腾烁 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 快速卷帘门_硬质快速卷帘门-西朗门业 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 氢氧化钙设备_厂家-淄博工贸有限公司| 无锡网站建设_小程序制作_网站设计公司_无锡网络公司_网站制作 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 氧化铁红厂家-淄博宗昂化工| 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 健身器材-健身器材厂家专卖-上海七诚健身器材有限公司 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 博莱特空压机|博莱特-阿特拉斯独资空压机品牌核心代理商 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 |