為了賬號安全,請及時綁定郵箱和手機立即綁定
編程百科手冊

掃一掃 手機閱讀

課程目錄已更新29節
全部 試讀

課程亮點

  • 你的第一本圖文并茂 Java 并發編程學習指南;
  • 生動有趣的講師手繪插圖輔助講解,枯燥原理一看即懂;
  • 內容通俗有趣,講解深入淺出,學習高效無障礙;

圖片描述

  • 代碼世界即現實世界,實際案例講解便于理解掌握;
  • 深入底層源碼解析,徹底理解 Java 并發的實現原理;
  • 代碼示例結合實戰,在實踐中掌握 Java 并發的實現技巧。

與實戰課程 Java 并發編程精講的亮點區別:

  • 側重于從原理解析角度進行講解;
  • 側重于 Java 并發最優設計模式與并發工具選擇進行講解;
  • 從原理到代碼示例解析,循序漸進,層層深入。

課程簡介圖片描述

隨著 CPU 的發展從提高頻率轉變為增加內核,如何利用好 CPU 的多核優勢,變得日益重要,程序開發中采用多線程來提高效率也變得更為普遍。但多線程是把雙刃劍,在提高計算效率的同時,也帶來了開發的復雜度,因此需要我們對多線程開發有足夠的認知,才能確保多線程程序正確運行。此外,多線程的知識也是面試中必考的知識點,要想拿下理想的職位,對多線程的深入學習是必不可少的。

不知你對多線程開發是否有過這樣的困惑: 做了幾年 Java web 開發,并沒有寫過多線程,但開發的軟件一樣高效、穩定運行,似乎多線程看起來并沒有那么重要?其實不然。在你的代碼背后,web 容器已經幫你實現了多線程,所有的請求都是單獨的線程在并發處理。

多線程在軟件領域的應用其實十分普遍,主要原因有如下幾點:

  1. 避免 CPU 閑置
    假如在一個業務操作中包含對另外兩個服務的調用,并且沒有依賴關系。如果采用單線程,就需要等待第一個服務返回結果后再發出第二個請求,但其實在第一個請求發出后,CPU 就已經空閑了,大量時間花在了等待請求返回上。而如果采用多線程,同時發出兩個請求,總的等待時間將會大大縮短。

  2. 程序解耦
    程序基本上都是由一個個方法的調用所組成。方法 A 返回結果傳遞給方法 B 繼續處理。也可以是方法 A 和方法 B 產生的結果一塊傳遞給方法 C 進一步處理。這其實這就是生產者和消費者。我們通過多線程,可以把邏輯以恰當的力度接耦,一個線程負責生產,另外一個線程負責消費。兩個線程互不依賴,并且通過隊列起到了緩沖的作用。這就像我們去飯店吃飯,前臺負責收費接單,后廚按訂單列表進行加工,這是典型的多線程。絕對不會有一個飯館前臺收完錢后,自己再去后廚炒菜。

  3. 提升性能
    一個人干活和一群人干活哪個更快?答案顯而易見,程序也是如此。一般來說,線程越多性能也越好。不過在達到峰值后,再增加線程也不能繼續提升性能。舉個例子,你的經理讓你做工作量評估。你說:我一個人要干十天。經理說:那兩個人,5 天能干完嗎?你想了想說:應該差不多。經理說:那我給你加 9 個人,1 天能搞定嗎?顯然這是不行的。

  4. 貼近現實世界
    我們生活的世界其實就是一個多線程的世界,可以認為每個人都是一個線程。而我們平時所做的絕大多數工作,都是多人完成的,也就是多線程完成。我們做軟件設計時,都會參考現實世界中的類似設計。所以多線程是必不可少的設計要素之一。Java 是面向對象的語言,我們的代碼都已經面向對象了,為什么我們編寫的對象還要以單線程的方式運行呢?所以使用多線程就是這么自然而然的一件事情。更加貼近真實世界,意味著你的設計更加易于理解,并且不會有什么漏洞。

掌握了多線程開發,在必要時運用得當,將會讓你的程序在以上幾個層面有顯著的提升。因此,作為一名開發人員,多線程開發是必備技能。此外,我們使用的開源軟件,絕大多數都會用到多線程。學習多線程,對于我們理解開源軟件代碼將會帶來很大的幫助。

多線程開發在 Java 中屬于高階的開發技術,如果能徹底掌握,并且靈活運用。無論是對未來升職或找到理想的工作,都有非常重要的作用。如今的技術面試,多線程知識幾乎是必考的。因此,多線程這一關是要必過的。

講師李一鳴,2006 年畢業于北京航空航天大學后,一直從事 Java 領域的軟件開發,有著豐富的開發經驗。曾經就職于聯想集團,負責全球化系統的研發。后來在法律互聯網行業創業,作為核心成員之一開發了多款法律互聯網應用。目前作為高級研發顧問,就職于 Thoughtworks。在這里能夠把更多的時間投入到技術本身,而這是技術人員的立命之本。業余時間參與了 Apache Pulsar 的中文文檔翻譯工作。為了增加大家的學習趣味,李一鳴老師親手繪制了許多生動有趣的漫畫插圖,并采用現實中的案例進行類比講解,幫助大家理解學習內容,專欄閱讀更加輕松高效。

本專欄采用的結構如下:

  1. 概念植入:簡明扼要說明本節要講解的概念,首先讓讀者對要講解的內容有所認知。并且明白學習本節的重要性;
  2. 概念分析:詳細講解本節涉及的概念,一般按以下邏輯進行講解:
    2.1 問題:拋出問題;
    2.2 解決方案:由問題引出解決方案;
    2.3 分析:結合例子、圖表進行分析,詳細講解解決方案;
    2.4 代碼:通過實踐來解決問題。
  3. 總結:提煉本節講解的核心知識點與概括總結,并對下一節內容做鋪墊。
課程目錄已更新29節
精選留言
  • 向遠之航

    我反而覺得這樣的安排挺好的,在深入線程池之前,自己的思路沒有被侵染,自己動手來實現一個線程池更能體會其中的精妙之處。當然,這個雖簡單但卻設計精奧的線程池,著實花了不少時間來理解每一個類的功能,感覺類之間層層相關,需要反復揣摩。

  • qq_oreo_5

    老師 快更那 辛苦了 跟您學到很多 謝謝

  • happyjey

    嗯,有追劇的快感??,相當精彩!!!

    講師回答 / 李一鳴

    感謝同學一直以來的支持!

更多精選留言

適合人群

1、初入職場,有簡單的 Java 開發基礎,想要從基礎開始學習 Java 多線程開發。

2、有 3-5 年甚至更多開發經驗,想要深入了解 Java 多線程開發。

3、學習過多線程,想要了解在實際項目中如何應用。

4、準備跳槽面試,想要全方位,較為深入的學習多線程。

購買須知
  1. 本專欄為圖文形式內容服務,共計 35 小節,上線時間為 2019 年 9 月 10 日,預計 2019 年 12 月 20 日更新完成;
  2. 本專欄更新時間為每周 2、4 更新 1 篇,形式為圖文;
  3. 訂閱成功后,用戶即可通過慕課網 PC 端、App 端、WAP 端享有永久閱讀的權限;
  4. 慕課專欄為虛擬內容服務,訂閱成功后概不退款;
  5. 在專欄閱讀過程中,如有任何問題,請郵件聯系 [email protected]
  6. 慕課專欄版權歸本平臺所有,任何機構、媒體、網站或個人未經本網協議授權不得轉載、鏈接、轉貼或以其他方式復制發布 / 發表,違者將依法追究責任。
造燭求明,讀書求理
掃碼關注慕課網服務號
干貨分享
定期活動
課程優惠
專欄福利
官方優惠福利活動一手掌握,關注慕課網(ID:imooc-com),和30萬+程序員一起成長!

本專欄知識點梳理

1.閱讀本專欄,你需要一定的Java基礎知識,可參考:

2.如果你想用實戰項目鞏固Java并發編程知識點的學習,可參考實戰課程:

下載慕課網APP

更好的體驗,讓閱讀隨處可得

掃描二維碼,下載慕課網APP
意見反饋 幫助中心 APP下載
官方微信
西宁快三开奖结果