由 Parallel.For 看多執行緒程式設計
$44.00
最低售價
$44.00
建議售價

由 Parallel.For 看多執行緒程式設計

.NET / C# 平行程式設計系列

關於本書

關於本書

某日在網路上爬文, 看到了臉書社團 這個[網址](https://bit.ly/3mNMSNJ) 中有許多人正在熱烈的討論關於如何使用 Parallel.For 這個方法來做到平行執行一萬次 Thread.Sleep(5000) 需求。 這是一個很有趣的題目,然而卻看到大家在這個串列中盡情的抒發自己的意見,表達各種看法,但是卻沒有人可以正確地說明如何做到提問者想要解決的問題, 計算機科學領域沒有這麼模寧兩可與複雜,只要有者正確的觀念與技巧, 都可以解釋當時發生了什麼問題,以及使用正確的方法來解決這些問題,然而,卻沒有透過這些討論內容來得到任何技能與知識提升的效果。

很早以前就想要寫本關於 .NET / C# 平行程式設計 方面的書籍,不過這方面的內容相當的多與繁雜,但是,已經針對這些內容整理與設計出四個階段的教育訓練課程與超過上百個講解與練習範例專案專案,因此,就逐一根據這個討論串列中各個人所提出的講法,設計不同的範例程式碼,而我只是想單純的想做個簡單的學術研究,並且將這些範例程式碼設計彙整成為一份教學課程簡報。

原本只是想針對 Parallel.For 這個題目設計一個簡單的快閃課程,有機會與大家一起來分享這些知識,但是在設計教學簡報的過程中,發現到有許多基礎的知識要能夠交代,才能夠順利解決某些問題,導致於簡報內容設計的越來越多,因此想說索性把這些過程與內容寫成一本書吧。

在此因緣際會下,開始了 .NET / C# 平行程式設計系列 的第一本書 由 Parallel.For 看多執行緒程式設計,在這本書裡面,將會提供 6 章節,將會討論到底下主題

  • 我只是想做個簡單的學術研究針對該討論串列內容與主要關鍵核心技術先行說明一番
  • 了解 Parallel.For 執行順序首先,先來了解 Parallel.For 是什麼,是要設計解決什麼問題
  • Parallel.For 平行迴圈程式設計的指定平行工作數目上限特性理解平行度,也就是在進行平行資料處理,原則上會把這些資料集和切割成不同區塊,交由不同的執行緒來執行緒
  • 使用Parallel.For做到一萬次迴圈,實際需要花多少時間將問題提問者提出的測試程式碼跑一次,就會知道提問者想要解決什麼問題了
  • 重現造成記憶體不足情況當提到記憶體不足,究竟說的是哪一個?Memory Overflow / Stack Overflow ,而造成的原因是什麼?
  • Parallel.For 同時執行 10000 次迴圈,觀察用了多少執行緒雖說 Parallel.For 可以提供資料平行處理能力,但是,究竟產生了多少執行緒來做到平行執行呢?
  • Parallel.For同時執行 200 次要花多久時間與用到多少執行緒Parallel.For 平行迴圈一萬次僅用到 235 執行緒,那麼,若僅平行迴圈 200 次,會不會5秒就執行完畢
  • 透過執行緒集區(預設參數)取得過多執行緒的使用情況了解執行緒集區的預設執行方式
  • 透過執行緒集區(修正參數)取得過多執行緒的使用情況設定執行緒集區預設準備 500 個執行緒,看看執行結果
  • 使用 new Thread 來自行產生 10000 個執行緒來使用大家都說執行使用執行緒,效能會很好,那麼就來產生 10000 個執行緒來看看表現
  • 了解同時使用 10000 個執行緒,這些執行緒開始執行時候,會造成多少延遲時間因為直接產生 10000 個執行緒效能表現不佳,了解問題在哪裡
  • Parallel.For 透過執行緒集區準備10000個執行緒的結果設定執行緒集區預設準備 10000 個執行緒,執行 Parallel.For 一萬次,看看執行結果
  • Parallel.For 透過執行緒集區準備不同執行緒數量的32位元執行結果在 32 位元下,若產生過多執行緒,會有記憶體不足問題產生
  • 聽說 Task 很厲害,那就使用 10000 個Tasks絕大部分的人都對 Task 與 Thread 有所誤解,在此建 10000 個 Task 來看看表現
  • 用 Task.Factory.StartNew 建立 10000 個Tasks使用每個 Task 都是自己生成的執行緒,不透過預設工作排程器來取得執行緒,看看表現
  • 使用 Task.Delay 來取代 Thread.Sleep 的封鎖 Block 等待使用非封鎖的等待方式來體驗好的設計方法有什麼不同
  • Parallel.For 改成使用 Task.Delay最後,了解如何做到資料平行 10000 次處理,最終真的僅需要 5 秒就可以執行完畢的方法

誰適合閱讀這本書

  • 對於任何想要學習 .NET / C# 平行程式設計 這個技術的開發者
  • 需要具有 .NET / C# 開發經驗者,畢竟這本書中的例子是使用 C# 解說
  • 最好能夠具備基本的計算機概念與知識

關於作者

Vulcan Lee
Vulcan Lee

從 2012 年開始進行 .NET / C# 教育訓練課程之後,對於許多開發出來的課程,並不是隨便敷衍的設計出來,這其中我會不斷地針對已經開發出來的課程來進行修正、改版、追加內容,因此,相關的課程是不斷的在變化與強化的。

要完成這樣的一系列課程是一種自我挑戰,讓自己可以看得更高、看得更遠、讓抄襲者永遠無法模仿,因為,這些課程加入了許多巧思與技能在裡面,內行看門道、外行看熱鬧。

我所設計的教學課程,為了要能夠讓入門者、想要精通者都可以喜歡我設計的課程,將會把課程應該具有的特色,所提供的內容將會涵蓋到更多的層面、更多範例碼、更多觀念介紹、更多的動畫來理解艱澀技術應用、更多挑戰應用、更多的日常遇到問題與解決方法、更完整的開發設計指引。

因此,很期望到時候能夠與大家一起來進行這個課程的交流與互動,也希望大家可以從這些課程學到更多知識與經驗,應用在日常開發專案上。

若對於這些課程有興趣,或者有任何其他需求,可以到 Xamarin Blazor 實驗室 粉絲團來私訊給我

也歡迎來查看我寫的部落格文章 https://csharpkh.blogspot.com/

目錄

  • 關於本書
    • 誰適合閱讀這本書
    • 練習專案原始碼
  • 1. 我只是想做個簡單的學術研究
    • 1.1 了解 Parallel.For 執行順序
    • 1.2 Parallel.For 平行迴圈程式設計的指定平行工作數目上限特性
  • 2. 有人提出問一個 Parallel.For 問題
    • 2.1 執行結果分析
    • 2.2 Parallel.For 是如何使用執行緒
    • 2.3 重現造成記憶體不足情況
    • 2.4 Memory Overflow 造成的原因
    • 2.5 Stack Overflow 造成的原因
  • 3. Parallel.For 同時執行 10000 次,觀察用了多少執行緒
    • 3.1 Parallel.For同時執行 200 次要花多久時間與用到多少執行緒
    • 3.2 透過執行緒集區(預設參數)取得過多執行緒的使用情況
    • 3.3 透過執行緒集區(修正參數)取得過多執行緒的使用情況
  • 4. 使用 new Thread 來自行產生 10000 個執行緒來使用
    • 4.1 了解同時使用 10000 個執行緒,這些執行緒開始執行時候,會造成多少延遲時間
    • 4.2 Parallel.For 透過執行緒集區準備10000個執行緒的結果
    • 4.3 Parallel.For 透過執行緒集區準備不同執行緒數量的32位元執行結果
  • 5. 聽說 Task 很厲害,那就使用 10000 個Tasks
    • 5.1 用Task.Factory.StartNew 建立 10000 個Tasks
  • 6. 使用 Task.Delay 來取代 Thread.Sleep 的封鎖 Block 等待
    • 6.1 Parallel.For 改成使用 Task.Delay
    • 6.2 修正 Parallel.For 使用 Task.Delay 造成的錯誤
    • 6.3 確認使用到多少的工作與執行緒
  • 版權頁

Leanpub 100% 無風險的滿意保證

付款後的 60 天內,只要點擊兩下,你就可以退書並獲得全額退款。退書是手工操作的,所以可能需要幾天時間來完成整個過程。
查看完整條款.

80% 的版稅。在一本 20 美元的書上賺取 16 美元。

我們支付 80% 的版稅。這不是打字錯誤:你在20美元的銷售中賺取16美元。如果我們賣出5000本你的書或課程的非退款副本,每份20美元,你將賺取80,000美元

(是的,有些作者在Leanpub上已經賺了比這更多。)

事實上,作者已經通過在Leanpub上寫作、出版和銷售賺取了超過1200萬美元

了解更多有關在Leanpub上寫作的資訊

免費更新。無 DRM 限制。

如果你購買了 Leanpub 的書,只要作者更新書籍,你就可以獲得免費更新!許多作者使用 Leanpub 來發布他們正在編寫的書籍。所有讀者都可以獲得免費更新,無論他們何時購買書籍或支付了多少費用(包括免費)。

大多數 Leanpub 書籍均提供 PDF(適用於電腦)、EPUB(適用於手機和平板電腦)和 MOBI(適用於 Kindle)格式。書籍包含的格式將顯示在此頁面的右上角。

最後,Leanpub 書籍沒有任何 DRM 複製保護的胡說,因此你可以輕鬆地在任何支持的設備上閱讀它們。

了解更多有關 Leanpub 電子書格式和閱讀位置的資訊

在 Leanpub 上寫作和出版

作家和出版社使用 Leanpub 來出版正在進行中和已完成的書籍,就像這本書一樣。您也可以使用 Leanpub 來撰寫、出版和銷售您的書籍!Leanpub 是一個強大的平台,適合嚴肅的作家。它結合了簡單、優雅的寫作和出版工作流程,以及一個可以銷售正在進行中的電子書的線上商店。對於作家來說,Leanpub 是一部神奇的打字機:您只需撰寫純文字,然後點擊一下按鈕就可以出版您的電子書。就是這麼簡單。

了解更多有關 Leanpub 上的寫作