Concurrency Runtime
Concurrency Runtime pro C++ vám pomůže psát robustní, škálovatelné a reagující paralelní aplikace. Vyvolá úroveň abstrakce, takže nemusíte spravovat podrobnosti infrastruktury, které se vztahují k souběžnosti. Můžete ji také použít k určení zásad plánování, které splňují požadavky vašich aplikací na kvalitu služeb. Tyto prostředky vám pomůžou začít pracovat s Concurrency Runtime.
Referenční dokumentaci najdete v tématu reference.
Tip
Concurrency Runtime spoléhá silně na funkce C++ 11 a přijímá moderní styl C++. Pokud se chcete dozvědět víc, přečtěte si téma Vítejte zpátky do C++.
Výběr funkcí rozhraní Concurrency Runtime
| Článek | Popis |
|---|---|
| Přehled | Učí, proč je Concurrency Runtime důležité a popisuje její klíčové funkce. |
| Porovnání s jinými modely souběžnosti | ukazuje, jak Concurrency Runtime porovnává s jinými modely souběžnosti, jako je Windows fond vláken a OpenMP, takže můžete použít model souběžnosti, který nejlépe vyhovuje požadavkům vaší aplikace. |
| Migrace z OpenMP do Concurrency Runtime | Porovnává OpenMP s Concurrency Runtime a obsahuje příklady, jak migrovat existující kód OpenMP pro použití Concurrency Runtime. |
| Knihovna PPL (Parallel Patterns Library) | Vás seznámí s PPL, který poskytuje paralelní smyčky, úlohy a paralelní kontejnery. |
| Knihovna asynchronních agentů | Zavádí vám, jak pomocí asynchronních agentů a předávání zpráv snadno začlenit úlohy toku dat a kanálů v aplikacích. |
| Plánovač úloh | Vás seznámí s Plánovač úloh, které vám umožní vyladit výkon desktopových aplikací využívajících Concurrency Runtime. |
Paralelismus úloh v knihovně PPL
| Článek | Popis |
|---|---|
| Paralelní úkoly Postupy: Použití parallel_invoke k psaní paralelní rutiny řazení Postupy: Použití parallel_invoke k provádění paralelních operací Postupy: vytvoření úlohy, která se dokončí po zpoždění |
Popisuje úlohy a skupiny úloh, které vám můžou pomáhat při psaní asynchronního kódu a rozložit paralelní práci na menší části. |
| Návod: implementace futures | Ukazuje, jak zkombinovat Concurrency Runtime funkce a provést něco dalšího. |
| Návod: odebrání práce z User-Interfaceho vlákna | Ukazuje, jak přesunout práci, která je provedena vláknem uživatelského rozhraní v aplikaci knihovny MFC, do pracovního vlákna. |
| Osvědčené postupy v knihovně paralelních vzorů Obecné osvědčené postupy v Concurrency Runtime |
Poskytuje tipy a osvědčené postupy pro práci s PPL. |
Datový paralelismus v knihovně PPL
| Článek | Popis |
|---|---|
| Paralelní algoritmy Postupy: Zápis smyčky parallel_for Postupy: Zápis smyčky parallel_for_each Postupy: paralelní provádění operací mapování a zkrácení operací |
Popisuje parallel_for , parallel_for_each , parallel_invoke a další paralelní algoritmy. Pomocí paralelních algoritmů můžete řešit paralelní problémy s daty , které zahrnují kolekce dat. |
| Paralelní kontejnery a objekty Postupy: Použití paralelních kontejnerů ke zvýšení efektivity Postupy: použití kombinace pro zlepšení výkonu Postupy: použití kombinace ke kombinování sad |
Popisuje combinable třídu a také concurrent_vector , concurrent_queue , concurrent_unordered_map a další paralelní kontejnery. Paralelní kontejnery a objekty používejte při vyžadování kontejnerů, které poskytují přístup s bezpečným přístupem ke svým prvkům. |
| Osvědčené postupy v knihovně paralelních vzorů Obecné osvědčené postupy v Concurrency Runtime |
Poskytuje tipy a osvědčené postupy pro práci s PPL. |
Zrušení úloh a paralelních algoritmů
| Článek | Popis |
|---|---|
| Zrušení v knihovně PPL | Popisuje roli zrušení v PPL, včetně toho, jak iniciovat žádosti o zrušení a reagovat na ně. |
| Postupy: přerušení paralelní smyčky pomocí zrušení Postupy: přerušení paralelní smyčky pomocí zpracování výjimek |
Ukazuje dva způsoby, jak zrušit paralelní práci s daty. |
aplikace Univerzální platforma Windows
| Článek | Popis |
|---|---|
| Vytváření asynchronních operací v jazyce C++ pro aplikace pro UWP | Popisuje některé klíčové body, které je potřeba vzít v úvahu při použití Concurrency Runtime k vytvoření asynchronních operací v aplikaci pro UWP. |
| Návod: připojení pomocí úloh a požadavků XML HTTP | Ukazuje, jak kombinovat PPL úkoly s IXMLHTTPRequest2IXMLHTTPRequest2Callback rozhraními a ODESÍLAT požadavky HTTP GET a post webové službě v aplikaci UWP. |
| ukázky prostředí Windows Runtime aplikací | obsahuje ukázky kódu ke stažení a ukázkové aplikace pro prostředí Windows Runtime. |
Programování toku dat v knihovně asynchronních agentů
Zpracování výjimek a ladění
| Článek | Popis |
|---|---|
| Zpracování výjimek | Popisuje, jak pracovat s výjimkami v Concurrency Runtime. |
| Paralelní Diagnostické nástroje | Naučí vás, jak doladit aplikace a co nejefektivnější využití Concurrency Runtime. |
Optimalizace výkonu
| Článek | Popis |
|---|---|
| Paralelní Diagnostické nástroje | Naučí vás, jak doladit aplikace a co nejefektivnější využití Concurrency Runtime. |
| Instance plánovače Postupy: Správa instance plánovače Zásady plánovače Postupy: Určení konkrétních zásad plánovače Postupy: Vytváření agentů, kteří používají konkrétní zásady plánovače |
Ukazuje, jak pracovat se spravujte instance plánovače a zásady plánovače. U desktopových aplikací vám zásady plánovače umožňují přidružit konkrétní pravidla ke konkrétním typům úloh. Můžete například vytvořit jednu instanci plánovače, která bude spouštět některé úlohy s prioritou vlákna se zvýšenými oprávněními, a pomocí výchozího plánovače spouštět jiné úlohy s normální prioritou vlákna. |
| Skupiny plánů Postupy: Použití skupin plánů k ovlivnění pořadí provádění |
Demonstruje způsob použití skupin plánů ke spřažení nebo seskupení souvisejících úloh. Můžete například vyžadovat vysoký stupeň lokality mezi souvisejícími úkoly, pokud tyto úlohy využívají výhody spuštění na stejném uzlu procesoru. |
| Zjednodušené úlohy | Vysvětluje, jak jsou zjednodušené úlohy užitečné při vytváření práce, která nevyžaduje vyrovnávání zatížení nebo zrušení, a jak jsou užitečné také pro přizpůsobení existujícího kódu pro použití s Concurrency Runtime. |
| Kontexty Postupy: Použití třídy kontextu k implementaci semaforu pro spolupráci Postupy: Kompenzace latence pomocí nadměrného počtu předsudcích |
Popisuje, jak řídit chování vláken, která jsou spravována Concurrency Runtime. |
| Funkce správy paměti Postupy: Použití funkce Alloc a Free ke zlepšení výkonu paměti |
Popisuje funkce správy paměti, které Concurrency Runtime, které vám pomůžou přidělit a volné paměti souběžně. |
Další materiály
| Článek | Popis |
|---|---|
| Vzory a tipy asynchronního programování v Hilo (Windows Store pomocí C++ a XAML) | Zjistěte, jak jsme použili Concurrency Runtime k implementaci asynchronních operací v Hilo, aplikaci Windows Runtime pomocí jazyka C++ a XAML. |
| Blog paralelního programování v nativním kódu | Poskytuje další podrobné blogové články o paralelním programování v Concurrency Runtime. |
| Paralelní výpočty v jazyce C++ a fórum nativního kódu | Umožňuje vám účastnit se komunitní diskuze o Concurrency Runtime. |
| Paralelní programování | Naučí vás model paralelního programování, který je k dispozici v .NET Framework. |