Java 中的多執行緒與併發(concurrent)程式設計、平行運算與 MapReduce
從這 6.5 小時的課程,你會學到
- 理解基本的併發( concurrency )
- 理解多執行緒處理( multithreading )的基礎知識
- 理解平行處理( parallel processing )
- 能夠在現實狀況中使用這些概念
要求
基本 Java (繼承、物件導向程式設計)
課程說明
本課程是關於多執行緒和併發程式設計的基礎知識和一些平行計算的概念。 在 21 世紀,隨著大數據( Big Data )和機器學習( Machine Learning )的出現,這個話題變得越來越流行。
我們將考慮執行緒( threads )、同步( synchronization )和鎖( locks )等底層概念。
接著我們將介紹並行程式庫( concurrent library ): 當然,在實現多執行緒應用程式時,我們可以使用內建的類別( classes )和介面( interfaces )。
然後我們將開發一些小程式作為多執行緒的展示案例 : 用餐-哲學家問題或圖書館內的學生模擬。 最後是關於平行計算和 MapReduce。
第一部分:
- 多執行緒背後的理論
- 多執行緒的優缺點
第二部分:
- 多執行緒基礎
- 可執行和執行緒
- 聯結 ( Join )、質變 ( volatile )、同步( synchronized )、等待( wait )與通知( notify )
- 生產者-消費者模型
- 鎖( locks )、訊號燈( semaphores )和執行器( executors )
第三部分:
- 同時收集
- 鎖存器( latch )、迴圈屏障( cyclic barrier )和阻塞佇列( blocking queues )
- 延遲佇列、優先佇列和並行對映
第四部分:
- 多執行緒範例
- 用餐哲學家問題
- 圖書館應用程式
- 礦工遊戲
第五部分:
- 什麼是平行運算
- 平行合併排序法( merge sort )
- 平行演算法
第六部分:
- Fork-join 框架
- 以平行方式尋找最大值
第七部分:
- 什麼是 MapReduce
- Mapreduce 和 Fork-Join 框架
謝謝你參加我的課程,讓我們開始吧!
目標受眾
本課程適用於希望掌握 java 多執行緒或想快速復習這方面知識的學生
講師簡介
Holczer Balazs 軟體工程師
我叫 Balazs Holczer。 我來自匈牙利布達佩斯。 我有物理學家資格,且一直是。 目前我在一家跨國公司擔任模擬工程師。 自從大學以來,我一直對演算法和資料結構以及它的實現感興趣,特別是在 Java 中。 後來我熟悉了機器學習技術、人工智慧、數值方法和配方,如求解微分方程、線性代數、內插( interpolation )和外差( extrapolation )。 這些事情可能在幾個領域被證明是非常重要的:軟體工程、研究與開發或投資銀行。 對於 Black-Scholes 模型或 Merton 模型等定量模型,我有特別喜愛。
歡迎參觀我的網站並訂閱,如果你對這些話題感興趣!
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
報名參加課程

也許你會有興趣
- Java 程式設計學習地圖
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
- 追蹤這個 Twitter ,得到 Soft & Share 特價課程訊息
★ 歡迎使用 App / Email | Telegram 訂閱 網站更新★