Sdílet prostřednictvím


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_eachparallel_invokea 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_vectorjako , concurrent_queue, concurrent_unordered_mapa 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ů

Článek Popis
Asynchronní agenti

Asynchronní bloky zpráv

Funkce pro předávání zpráv

Postupy: Implementace různých vzorů producent–příjemce

Postupy: Poskytování pracovních funkcí třídám call a transformer

Postupy: Použití transformace v datovém kanálu

Postupy: Výběr z dokončených úloh

Postupy: Odesílání zpráv v pravidelných intervalech

Postupy: Použití filtru bloku zpráv
Popisuje asynchronní agenty, bloky zpráv a funkce předávání zpráv, což jsou stavební bloky pro provádění operací toku dat v Concurrency Runtime.
Návod: Vytvoření aplikace založené na agentovi

Postupy: Vytvoření agenta toku dat
Ukazuje, jak vytvářet základní aplikace založené na agentech.
Návod: Vytvoření sítě pro zpracování obrázků Ukazuje, jak vytvořit síť asynchronních bloků zpráv, které provádějí zpracování obrázků.
Návod: Použití metody join k zabránění vzájemnému zablokování Používá problém s jídelnami k ilustraci, jak pomocí modulu Concurrency Runtime zabránit vzájemnému zablokování ve vaší aplikaci.
Návod: Vytvoření vlastního bloku zpráv Ukazuje, jak vytvořit vlastní typ bloku zpráv, který bude řadit příchozí zprávy podle priority.
Osvědčené postupy v knihovně asynchronních agentů

Obecné osvědčené postupy v Concurrency Runtime
Obsahuje tipy a osvědčené postupy pro práci s agenty.

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.

Viz také

Odkaz