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ů

Článek Popis
Asynchronní agenti

Bloky asynchronních zpráv

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

Postupy: implementace různých vzorů Producer-Consumer

Postupy: poskytování pracovních funkcí třídám Call a Transformer

Postupy: Použití transformátoru 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 pro předávání zpráv, které jsou stavebními bloky pro provádění operací toku dat v Concurrency Runtime.
Návod: Vytvoření aplikace Agent-Based

Návod: Vytvoření agenta toku dat
Ukazuje, jak vytvořit základní aplikace založené na agentech.
Návod: vytvoření Image-Processing sítě Ukazuje, jak vytvořit síť asynchronních bloků zpráv, které provádějí zpracování imagí.
Návod: použití spojení k zabránění zablokování Pomocí obědvajících problému s stravováním ilustruje, jak používat Concurrency Runtime k tomu, aby se zabránilo zablokování ve vaší aplikaci.
Návod: Vytvoření vlastního bloku zpráv Ukazuje, jak vytvořit vlastní typ bloku zprávy, který vyřadí příchozí zprávy podle priority.
Osvědčené postupy v knihovně asynchronních agentů

Obecné osvědčené postupy v Concurrency Runtime
Poskytuje 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 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.

Viz také

Odkaz