Udostępnij za pośrednictwem


Harmonogram zadań (współbieżność środowiska wykonawczego)

Tematy w tej części dokumentacji opisują ważne funkcje harmonogramu zadań współbieżności środowiska uruchomieniowego. Harmonogram zadań jest przydatny, gdy chcesz dostosować wydajność istniejącego kodu, który używa środowiska uruchomieniowego współbieżności.

Ważne

Harmonogram zadań nie jest dostępny w aplikacji platformy platforma uniwersalna systemu Windows (UWP). Aby uzyskać więcej informacji, zobacz Creating Asynchronous Operations in C++ for UWP Apps (Tworzenie operacji asynchronicznych w języku C++ dla aplikacji platformy UWP).

W programie Visual Studio 2015 lub nowszym współbieżność ::task class and related types in ppltasks.h użyj puli wątków systemu Windows jako harmonogramu. Ten temat nie dotyczy już typów zdefiniowanych w pliku ppltasks.h. Algorytmy równoległe, takie jak parallel_for, nadal używają środowiska uruchomieniowego współbieżności jako domyślnego harmonogramu.

Napiwek

Środowisko uruchomieniowe współbieżności udostępnia domyślny harmonogram, dlatego nie jest wymagane utworzenie go w aplikacji. Ponieważ harmonogram zadań ułatwia dostosowanie wydajności aplikacji, zalecamy rozpoczęcie od biblioteki równoległych wzorców (PPL) lub biblioteki agentów asynchronicznych, jeśli dopiero zaczynasz pracę ze środowiskiem uruchomieniowym współbieżności.

Harmonogram zadań planuje i koordynuje zadania w czasie wykonywania. Zadanie to jednostka pracy, która wykonuje określone zadanie. Zadanie może być zwykle uruchamiane równolegle z innymi zadaniami. Praca wykonywana przez elementy grupy zadań, algorytmy równoległe i agentów asynchronicznych to wszystkie przykłady zadań podrzędnych.

Harmonogram zadań zarządza szczegółami związanymi z wydajnym planowaniem zadań na komputerach z wieloma zasobami obliczeniowymi. Harmonogram zadań używa również najnowszych funkcji bazowego systemu operacyjnego. W związku z tym aplikacje korzystające ze środowiska uruchomieniowego współbieżności są automatycznie skalowane i ulepszane na sprzęcie, który ma rozszerzone możliwości.

Porównanie z innymi modelami współbieżności opisuje różnice między mechanizmami planowania wywłaszego i współpracy. Harmonogram zadań używa wspólnego planowania i algorytmu kradzieży pracy wraz z harmonogramem wyprzedzającym systemu operacyjnego w celu osiągnięcia maksymalnego użycia zasobów przetwarzania.

Środowisko uruchomieniowe współbieżności udostępnia domyślny harmonogram, dzięki czemu nie trzeba zarządzać szczegółami infrastruktury. W związku z tym zwykle harmonogram zadań nie jest używany bezpośrednio. Jednak aby spełnić wymagania dotyczące jakości aplikacji, możesz użyć harmonogramu zadań, aby udostępnić własne zasady planowania lub skojarzyć harmonogramy z określonymi zadaniami. Załóżmy na przykład, że masz procedurę sortowania równoległego, która nie jest skalowana poza cztery procesory. Za pomocą zasad harmonogramu można utworzyć harmonogram, który generuje nie więcej niż cztery współbieżne zadania. Uruchomienie procedury sortowania w tym harmonogramie umożliwia innym aktywnym harmonogramom korzystanie z pozostałych zasobów przetwarzania.

Nazwa opis
Wystąpienia harmonogramu Opisuje wystąpienia harmonogramu oraz sposób używania concurrency::Scheduler klas i concurrency::CurrentScheduler do zarządzania nimi. Użyj wystąpień harmonogramu, jeśli chcesz skojarzyć jawne zasady planowania z określonymi typami obciążeń.
Zasady harmonogramu Opisuje rolę zasad harmonogramu. Użyj zasad harmonogramu, gdy chcesz kontrolować strategię używaną przez harmonogram podczas zarządzania zadaniami.
Grupy harmonogramu Opisuje rolę grup harmonogramu. Użyj grup harmonogramu, gdy wymagane jest duże lokalne środowisko między zadaniami, na przykład gdy grupa powiązanych zadań korzysta z wykonywania w tym samym węźle procesora.
Zadania lekkie Opisuje rolę lekkich zadań. Uproszczone zadania są przydatne podczas dostosowywania istniejącego kodu do korzystania z funkcji planowania środowiska uruchomieniowego współbieżności.
Konteksty Opisuje rolę kontekstów, concurrency::wait funkcji i concurrency::Context klasy. Użyj tej funkcji, gdy potrzebujesz kontroli nad tym, kiedy konteksty blokują, odblokuj i dają lub gdy chcesz włączyć nadsubskrypcję w aplikacji.
Funkcje zarządzania pamięcią concurrency::Alloc Opisuje funkcje i concurrency::Free . Te funkcje mogą zwiększyć wydajność pamięci, przydzielając i zwalniając pamięć w sposób współbieżny.
Porównanie z innymi modelami współbieżności Opisuje różnice między mechanizmami planowania z góry i współpracy.
Biblioteka równoległych wzorców (PLL) Opisuje sposób używania różnych wzorców równoległych, na przykład algorytmów równoległych, w aplikacjach.
Biblioteki agentów asynchronicznych Opisuje sposób używania agentów asynchronicznych w aplikacjach.
Środowisko uruchomieniowe współbieżności Opisuje środowisko uruchomieniowe współbieżności, które upraszcza programowanie równoległe i zawiera linki do powiązanych tematów.