14.1 理解不同的並行技術
.net 的並行擴充套件(parallel extensions to .net)
這個庫包括兩個主要部分組成,我們在這一章中會用到。
■ 任務並行庫 (task parallel library,tpl),包括基礎結構,可以並行執行的任務(基本工作單元,primitive units of work)。tpl的另乙個元件允許建立常見計算任務,比如 for 迴圈。
■ 並行 linq (parallel linq,plinq),可以用於寫資料並行**。這是處理大量的資料的**,使用相同的演算法。
用於並行執行任務的底層技術,以完全託管的**實現,使用了源自微軟研究院(msr)的先進技術。它使用動態工作分配,即,任務分為到工作執行緒之間,取決於執行緒的可用性。一旦執行緒完成分配給自己的任務,就可以從其他執行緒中啟動"竊取(stealing)"任務,所以,工作將均勻分布在所有可用的處理器或核心之間。任務儲存在佇列中的每個工作執行緒,這也大大降低所需的同步和鎖定的實現。
讓我們從在介紹中提到的特定技術:對使用陣列的命令式**進行並行化開始,這與不允許有任何***的純函式式語言不相關,但正如我們在第 10 章所看到的,以函式風格使用陣列,在 c# 和 f# 中是很有用的技術,
14 1 理解不同的並行技術
14.1 理解不同的並行技術 net 的並行擴充套件 parallel extensions to net 這個庫包括兩個主要部分組成,我們在這一章中會用到。任務並行庫 task parallel library,tpl 包括基礎結構,可以並行執行的任務 基本工作單元,primitive units...
並行與併發的理解
並行 就是同一時間點,同時執行兩件或者多件事,比如,a,b操作員分別同時操作他們自己的賬戶 併發 指同時 或著說在同一段時間內 內,執行同乙個事件,比如 銀行兩操作員同時操作同一賬戶就是典型的例子。比如a b操作員同時讀取一餘額為1000元的賬戶,a操作員為該賬戶增加100元,b操作員同時為該賬戶減...
並行和併發的理解
並行和併發理解起來好像一樣,好像又不一樣,到底怎麼理解呢?兩者又有什麼區別呢?先上個人理解的結論 併發的關鍵 是你有處理多個任務的能力,不一定要同時。並行的關鍵 是你有同時處理多個任務的能力。具體分析如下 併發程式 如果程式支援多個動作同時存在,那麼就是併發程式。並行程式 如果程式支援多個動作同時執...