Paralelní programování v .NETParallel Programming in .NET

Mnoho osobních počítačů a pracovních stanic má několik jader procesoru, které umožňují spouštět více vláken současně.Many personal computers and workstations have multiple CPU cores that enable multiple threads to be executed simultaneously. Chcete-li využít výhod hardwaru, můžete paralelizovat svůj kód pro distribuci práce mezi více procesorů.To take advantage of the hardware, you can parallelize your code to distribute work across multiple processors.

V minulosti paralelizace vyžadovala nízkoúrovňovou manipulaci s vlákny a zámky.In the past, parallelization required low-level manipulation of threads and locks. Visual Studio a .NET Framework zvyšují podporu paralelního programování tím, že poskytuje modul runtime, typy knihovny tříd a diagnostické nástroje.Visual Studio and the .NET Framework enhance support for parallel programming by providing a runtime, class library types, and diagnostic tools. Tyto funkce, které byly představeny s .NET Framework 4, zjednodušují paralelní vývoj.These features, which were introduced with the .NET Framework 4, simplify parallel development. V přirozeném idiom můžete napsat efektivní, jemně odstupňovaný a škálovatelný paralelní kód, aniž byste museli pracovat přímo s vlákny nebo s fondem vláken.You can write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool.

Následující obrázek poskytuje podrobný přehled architektury paralelního programování v .NET Framework:The following illustration provides a high-level overview of the parallel programming architecture in the .NET Framework:

Architektura paralelního programování .NET

TechnologieTechnology PopisDescription
Task Parallel Library (TPL)Task Parallel Library (TPL) Poskytuje dokumentaci pro třídu System.Threading.Tasks.Parallel, která zahrnuje paralelní verze For a ForEach smyčky a také pro System.Threading.Tasks.Task třídu, která představuje preferovaný způsob, jak vyjádřit asynchronní operace.Provides documentation for the System.Threading.Tasks.Parallel class, which includes parallel versions of For and ForEach loops, and also for the System.Threading.Tasks.Task class, which represents the preferred way to express asynchronous operations.
Paralelní LINQ (PLINQ)Parallel LINQ (PLINQ) Paralelní implementace LINQ to Objects, která v mnoha scénářích výrazně zvyšuje výkon.A parallel implementation of LINQ to Objects that significantly improves performance in many scenarios.
Datové struktury pro paralelní programováníData Structures for Parallel Programming Obsahuje odkazy na dokumentaci pro třídy kolekce bezpečné pro přístup z více vláken, typy zjednodušené synchronizace a typy pro opožděnou inicializaci.Provides links to documentation for thread-safe collection classes, lightweight synchronization types, and types for lazy initialization.
Paralelní diagnostické nástrojeParallel Diagnostic Tools Obsahuje odkazy na dokumentaci pro okna ladicího programu sady Visual Studio pro úlohy a paralelní zásobníky a pro Vizualizátor souběžnosti.Provides links to documentation for Visual Studio debugger windows for tasks and parallel stacks, and for the Concurrency Visualizer.
Vlastní dělicí metody pro PLINQ a TPLCustom Partitioners for PLINQ and TPL Popisuje, jak pracují rozdělovače a jak nakonfigurovat výchozí rozdělovače nebo vytvořit nový rozdělovač.Describes how partitioners work and how to configure the default partitioners or create a new partitioner.
Plánovače úlohTask Schedulers Popisuje, jak pracují plánovače a jak lze nakonfigurovat výchozí plánovače.Describes how schedulers work and how the default schedulers may be configured.
Výrazy lambda v PLINQ a TPLLambda Expressions in PLINQ and TPL Poskytuje stručný přehled výrazů lambda v jazyce C# a Visual Basic a ukazuje způsob jejich použití v PLINQ a Task Parallel Library.Provides a brief overview of lambda expressions in C# and Visual Basic, and shows how they are used in PLINQ and the Task Parallel Library.
Pro další čteníFor Further Reading Obsahuje odkazy na Další informace a ukázkové prostředky pro paralelní programování v rozhraní .NET.Provides links to additional information and sample resources for parallel programming in .NET.

Viz také:See also