Share via


並行執行階段

Visual C++ 的並行執行階段撰寫穩固,可擴充且敏感的平行應用程式。 它提高了抽象層級,讓您不需要管理與並行相關的基礎結構細節。 您也可以用它來指定符合應用程式服務品質需求的排程原則。 使用這些資源可協助您開始使用並行執行階段搭配使用。

如需參考文件,請參閱 參考 (並行執行階段)

提示

並行執行階段大量 C++11 功能並採取更現代的 C++ 樣式。若要了解詳細資訊,請參閱 歡迎回到 C++ (現代的 C++)

選取並行執行階段的功能。

並行執行階段概觀

教導並行執行階段的重要性,並說明其主要功能。

比較並行執行階段和其他並行模型

說明並行執行階段與 Windows 執行緒集區和 OpenMP 等其他並行模型的比較,讓您可以使用最符合應用程式需求的並行模型。

從 OpenMP 移轉至並行執行階段

使用執行階段執行比較 OpenMP 並提供相關範例移轉現有 OpenMP 程式碼以使用並行執行階段。

平行模式程式庫 (PPL)

介紹 PPL,提供平行迴圈、工作和平行容器。

非同步代理程式程式庫

介紹如何使用非同步代理程式,並輕易地將資料流程和管線工作的訊息傳遞中配置的控制代碼。

工作排程器 (並行執行階段)

介紹工作排程器,可讓您最佳化您的桌面應用程式效能使用並行執行階段。

PPL 中的平行處理原則 (Task Parallelism)

工作平行處理原則 (並行執行階段)

HOW TO:使用 parallel_invoke 來撰寫平行排序常式

HOW TO:使用 parallel_invoke 執行平行作業

HOW TO:建立在延遲之後才會完成的工作

說明工作與工作群組,可協助您撰寫非同步程式碼和平行工作分解成較小的部分。

逐步解說:實作未來

示範如何將並行執行階段的功能更執行動作。

逐步解說:從使用者介面執行緒中移除工作

示範如何移動使用者介面執行緒執行到背景工作執行緒的 MFC 應用程式的工作。

平行模式程式庫中的最佳作法

並行執行階段中的一般最佳作法

提供提示和最佳作法以 PPL。

PPL 中資料平行處理原則

平行演算法

HOW TO:撰寫 parallel_for 迴圈

HOW TO:撰寫 parallel_for_each 迴圈

HOW TO:平行執行對應和縮減作業

描述 parallel_forparallel_for_eachparallel_invoke和其他平行演算法。 使用平行演算法解決牽涉到資料 的資料平行的 問題。

平行容器和物件

HOW TO:使用平行容器提高效率

HOW TO:使用可組合的類別改善效能

HOW TO:使用可組合的類別結合集合

描述 combinable 類別以及 concurrent_vectorconcurrent_queueconcurrent_unordered_map和其他平行容器。 請使用平行容器和物件,當您需要提供安全執行緒存取其元素的容器時。

平行模式程式庫中的最佳作法

並行執行階段中的一般最佳作法

提供提示和最佳作法以 PPL。

取消工作和平行演算法

PPL 中的取消

PPL 中描述移除角色,包括啟始和回應取消要求。

HOW TO:使用取消來中斷平行迴圈

HOW TO:使用例外狀況處理來中斷平行迴圈

示範兩種方式取消資料平行工作。

Windows 市集應用程式

使用 C++ 為 Windows 市集應用程式建立非同步作業

說明一些重要時應該牢記使用並行執行階段會在 Windows 市集 應用程式的非同步作業。

逐步解說:使用工作和 XML HTTP 要求 (IXHR2) 連線

顯示如何合併 PPL 提供 IXMLHTTPRequest2IXMLHTTPRequest2Callback 介面傳送 HTTP GET 和 POST 要求對 Windows 市集 應用程式上的 Web 服務。

Windows 市集應用程式範例

包含下載的程式碼範例和範例應用程式的 Windows 8。 C++ 範例使用並行執行階段的功能 (如 PPL 工作流程在背景中資料保持 UX 敏感。

資料流程程式撰寫在非同步代理程式程式庫中

非同步代理程式

非同步訊息區

訊息傳遞函式

HOW TO:實作各種生產者-消費者模式

HOW TO:為呼叫和轉換程式類別提供工作函式

HOW TO:在資料管線中使用轉換程式

HOW TO:在已完成的工作之中選取

HOW TO:定期傳送訊息

HOW TO:使用訊息區篩選條件

描述非同步代理程式,訊息區塊和訊息傳遞函式,是執行的資料流作業中的並行執行階段。

逐步解說:建立代理程式架構應用程式

逐步解說:建立資料流程代理程式

示範如何建立基本的代理程式架構應用程式。

逐步解說:建立影像處理網路

示範如何建立可執行影像處理的非同步訊息區塊網路。

逐步解說:使用聯結以避免死結

使用哲學家用餐問題說明如何使用並行執行階段應用程式中的死結。

逐步解說:建立自訂訊息區

示範如何建立可依優先權排序傳入訊息區塊類型的自訂訊息。

非同步代理程式程式庫中的最佳作法

並行執行階段中的一般最佳作法

提供提示和最佳作法以代理程式。

例外狀況處理和偵錯

並行執行階段的例外狀況處理

描述如何在並行執行階段的例外狀況一起使用。

平行診斷工具 (並行執行階段)

教導如何微調應用程式及最有效使用並行執行階段。

調整過的效能

平行診斷工具 (並行執行階段)

教導如何微調應用程式及最有效使用並行執行階段。

排程器執行個體

HOW TO:管理排程器執行個體

排程器原則

HOW TO:指定特定排程器原則

HOW TO:建立使用特定排程器原則的代理程式

顯示如何使用管理排程器執行個體和排程器原則。 在傳統型應用程式,排程器原則可讓您使特定規則與工作量的特定型別。 例如,您可以建立一個排程器執行個體以更高的執行緒優先順序執行某些工作,而使用預設排程器以一般執行緒優先順序執行其他工作。

排程群組

HOW TO:使用排程群組來影響執行順序

示範如何使用排程群組的 affinitize 或群組,相關的工作。 例如,在中,這些工作會因執行在相同處理器節點時,您可能需要高度相關工作中的位置。

輕量型工作

說明輕量型工作方式建立不需要負載平衡或取消的工作,,以及適用於改寫現有程式碼也適用於與並行執行階段中使用。

內容

HOW TO:使用內容類別實作合作式信號

HOW TO:使用過度訂閱使延遲產生位移

說明如何控制在並行執行階段處理執行緒的行為。

記憶體管理函式

HOW TO:使用 Alloc 和 Free 改善記憶體效能

說明並行執行階段提供協助您配置和釋放記憶體以並行方式的記憶體管理函式。

其他資源

非同步程式設計樣式和技巧。Hilo (使用 C++ 和 XAML 的 Windows 市集應用程式)

學習如何使用並行執行階段實作 Hilo,執行 Windows 市集 應用程式使用 C++ 和 XAML 的非同步作業。

程式碼並行執行階段的範例和 Visual Studio 2010 的平行模式程式庫

提供並行執行階段的應用程式和公用程式。

機器碼平行程式設計部落格

提供並行執行階段平行程式設計的其他深入部落格文章。

C++ 和機器碼平行程式設計論壇

讓您參與並行執行階段的社群討論。

以 .NET Framework 進行平行程式設計

教導 .NET Framework 中提供的平行程式撰寫模型。

請參閱

其他資源

參考 (並行執行階段)