Concurrency Runtime
Concurrency Runtime pro C++ vám pomůže psát robustní, škálovatelné a responzivní paralelní aplikace. Zvýší úroveň abstrakce, takže nemusíte spravovat podrobnosti o infrastruktuře, které souvisejí se souběžností. Můžete ho také použít k určení zásad plánování, které splňují požadavky vaší aplikace na kvalitu služeb. Tyto zdroje informací vám pomůžou začít pracovat s modulem Concurrency Runtime.
Referenční dokumentaci najdete v referenčních informacích.
Tip
Concurrency Runtime spoléhá silně na funkce C++11 a využívá modernější styl jazyka C++. Další informace najdete v tématu Vítejte zpět v jazyce C++.
Výběr funkcí rozhraní Concurrency Runtime
Článek | Popis |
---|---|
Přehled | Naučíte se, proč je modul Concurrency Runtime důležitý a popisuje jeho 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 fond vláken Windows a OpenMP, abyste mohli použít model souběžnosti, který nejlépe vyhovuje požadavkům vaší aplikace. |
Migrace z OpenMP do Concurrency Runtime | Porovnává OpenMP s modulem Concurrency Runtime a poskytuje příklady migrace existujícího kódu OpenMP pro použití modulu Concurrency Runtime. |
Knihovna PPL (Parallel Patterns Library) | Seznámí vás s PPL, který poskytuje paralelní smyčky, úlohy a paralelní kontejnery. |
Knihovna asynchronních agentů | Seznámíte se s tím, jak používat asynchronní agenty a předávání zpráv, abyste mohli do svých aplikací snadno začlenit úlohy toku dat a kanálování. |
Plánovač úloh | Seznámí vás s plánovačem úloh, který vám umožní doladit výkon desktopových aplikací, které používají Concurrency Runtime. |
Paralelismus úloh v knihovně PPL
Článek | Popis |
---|---|
Paralelismus úkolu Postupy: Použití algoritmu parallel_invoke k zápisu rutiny paralelního třídění Postupy: Použití algoritmu parallel_invoke k provádění paralelních operací Postupy: Vytvoření úlohy, která se dokončí po prodlevě |
Popisuje úlohy a skupiny úloh, které vám můžou pomoct psát asynchronní kód a dekompilovat paralelní práci do menších částí. |
Návod: Implementace tříd future | Demonstruje, jak zkombinovat funkce Concurrency Runtime a udělat něco dalšího. |
Návod: Odebrání práce z vlákna uživatelského rozhraní | Ukazuje, jak přesunout práci prováděnou vláknem uživatelského rozhraní v aplikaci MFC do pracovního vlákna. |
Osvědčené postupy v knihovně PPL (Parallel Patterns Library) Obecné osvědčené postupy v Concurrency Runtime |
Obsahuje tipy a osvědčené postupy pro práci s PPL. |
Datový paralelismus v knihovně PPL
Článek | Popis |
---|---|
Paralelní algoritmy Postupy: Programování smyčky parallel_for Postupy: Programování smyčky parallel_for_each Postupy: Paralelní provádění operací mapování a redukce |
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í shromažďování dat. |
Paralelní kontejnery a objekty Postupy: Použití paralelních kontejnerů ke zvýšení účinnosti Postupy: Použití objektu combinable ke zlepšení výkonu Postupy: Použití objektu combinable ke slučování množin |
Popisuje combinable třídu, stejně concurrent_vector jako , concurrent_queue , concurrent_unordered_map a další paralelní kontejnery. Použijte paralelní kontejnery a objekty, pokud potřebujete kontejnery, které poskytují přístup k jejich prvkům bezpečným pro přístup z více vláken. |
Osvědčené postupy v knihovně PPL (Parallel Patterns Library) Obecné osvědčené postupy v Concurrency Runtime |
Obsahuje 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ě způsobu zahájení a reakce na žádosti o zrušení. |
Postupy: Přerušení paralelní smyčky pomocí zrušení Postupy: Přerušení paralelní smyčky pomocí zpracování výjimek |
Demonstruje dva způsoby zrušení paralelní práce s daty. |
Univerzální platforma Windows aplikace
Článek | Popis |
---|---|
Vytváření asynchronních operací v jazyce C++ pro aplikace pro UPW | Popisuje některé klíčové body, které je potřeba mít na paměti při použití modulu Concurrency Runtime k vytváření asynchronních operací v aplikaci pro UPW. |
Návod: Připojení pomocí úloh a žádostí XML HTTP | Ukazuje, jak zkombinovat úlohy PPL s rozhraními IXMLHTTPRequest2 IXMLHTTPRequest2Callback pro odesílání požadavků HTTP GET a POST do webové služby v aplikaci pro UPW. |
ukázky aplikací prostředí Windows Runtime | 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 modulu Concurrency Runtime. |
Paralelní diagnostické nástroje | Naučí vás, jak vyladit aplikace a co nejefektivněji využívat Concurrency Runtime. |
Optimalizace výkonu
Článek | Popis |
---|---|
Paralelní diagnostické nástroje | Naučí vás, jak vyladit aplikace a co nejefektivněji využívat Concurrency Runtime. |
Instance plánovače Postupy: Správa instance plánovače Zásady plánovače Postupy: Určení specifických zásad plánovače Postupy: Vytváření agentů využívajících specifické zásady plánovače |
Ukazuje, jak pracovat se správou instancí plánovače a zásad plánovače. U desktopových aplikací umožňují zásady plánovače 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á spustí některé úlohy s vyšší prioritou vlákna a použije výchozí plánovač ke spouštění dalších úloh v normální prioritě vlákna. |
Skupiny plánů Postupy: Použití skupin plánů k ovlivnění pořadí provádění |
Ukazuje, jak používat skupiny plánů ke spřažení nebo seskupování souvisejících úkolů. Například můžete vyžadovat vysokou míru umístění mezi souvisejícími úkoly, pokud tyto úlohy mají prospěch z provádění na stejném uzlu procesoru. |
Prosté úlohy | Vysvětluje, jak jednoduché úlohy jsou užitečné pro vytváření práce, které nevyžadují vyrovnávání zatížení nebo zrušení, a jak jsou také užitečné pro přizpůsobení existujícího kódu pro použití s concurrency Runtime. |
Kontexty Postupy: Použití třídy kontextu pro implementaci semaforu pro spolupráci Postupy: Kompenzace latence vytvořením nadbytečného počtu vláken |
Popisuje, jak řídit chování vláken spravovaných modulem Concurrency Runtime. |
Funkce správy paměti Postupy: Použití funkcí Alloc a Free ke zlepšení výkonu paměti |
Popisuje funkce správy paměti, které poskytuje Concurrency Runtime, které vám pomůžou přidělovat a uvolnit paměť souběžným způsobem. |
Další materiály
Článek | Popis |
---|---|
Asynchronní programovací vzory a tipy v Hilo (aplikace pro Windows Store využívající C++ a XAML) | Zjistěte, jak jsme pomocí modulu Concurrency Runtime implementovali asynchronní operace v hilo, aplikaci prostředí Windows Runtime pomocí C++ a XAML. |
Blog o paralelním 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 ve fóru C++ a nativního kódu | Umožňuje účastnit se komunitních diskuzí o concurrency Runtime. |
Paralelní programování | Naučí vás o paralelním programovacím modelu, který je k dispozici v rozhraní .NET Framework. |