Współbieżność środowiska wykonawczego

Środowisko uruchomieniowe współbieżności dla języka C++ ułatwia pisanie niezawodnych, skalowalnych i dynamicznych aplikacji równoległych. Zwiększa ona poziom abstrakcji, aby nie trzeba było zarządzać szczegółami infrastruktury, które są związane z współbieżnością. Można go również użyć do określania zasad planowania, które spełniają wymagania dotyczące jakości usług aplikacji. Użyj tych zasobów, aby ułatwić rozpoczęcie pracy ze środowiskiem uruchomieniowym współbieżności.

Aby uzyskać dokumentację referencyjną, zobacz Dokumentacja.

Napiwek

Środowisko uruchomieniowe współbieżności opiera się w dużej mierze na funkcjach języka C++11 i przyjmuje bardziej nowoczesny styl języka C++. Aby dowiedzieć się więcej, przeczytaj Witamy z powrotem w języku C++.

Wybieranie funkcji współbieżnych środowiska wykonawczego

Artykuł opis
Omówienie Uczy, dlaczego środowisko uruchomieniowe współbieżności jest ważne i opisuje jego kluczowe funkcje.
Porównanie z innymi modelami współbieżności Pokazuje, jak środowisko uruchomieniowe współbieżności porównuje się z innymi modelami współbieżności, takimi jak pula wątków systemu Windows i OpenMP, dzięki czemu można użyć modelu współbieżności, który najlepiej pasuje do wymagań aplikacji.
Migrowanie z OpenMP do środowiska uruchomieniowego współbieżności Porównuje protokół OpenMP ze środowiskiem uruchomieniowym współbieżności i zawiera przykłady dotyczące sposobu migrowania istniejącego kodu OpenMP w celu korzystania ze środowiska uruchomieniowego współbieżności.
Biblioteka równoległych wzorców (PLL) Wprowadzenie do PPL, która zapewnia pętle równoległe, zadania i kontenery równoległe.
Biblioteki agentów asynchronicznych Przedstawia sposób używania agentów asynchronicznych i przekazywania komunikatów w celu łatwego dołączania przepływów danych i zadań potokowych w aplikacjach.
Harmonogram zadań Wprowadza Cię do harmonogramu zadań, który umożliwia dostosowanie wydajności aplikacji klasycznych korzystających ze środowiska uruchomieniowego współbieżności.

Proste zadania w PPL

Artykuł opis
Równoległość zadań

Instrukcje: używanie parallel_invoke do napisania procedury sortowania równoległego

Instrukcje: korzystanie z parallel_invoke podczas przeprowadzania operacji równoległych

Instrukcje: tworzenie zadania kończonego po opóźnieniu
Opisuje zadania i grupy zadań, które mogą ułatwić pisanie kodu asynchronicznego i rozkładanie równoległych zadań na mniejsze elementy.
Przewodnik: wdrażanie przyszłych operacji Pokazuje, jak połączyć funkcje środowiska uruchomieniowego współbieżności, aby zrobić coś więcej.
Przewodnik: usuwanie pracy z wątku interfejs użytkownika Pokazuje, jak przenieść pracę wykonywaną przez wątek interfejsu użytkownika w aplikacji MFC do wątku roboczego.
Biblioteka wzorów równoległych — najlepsze praktyki

Środowisko uruchomieniowe współbieżności — najlepsze praktyki ogólne
Zawiera porady i najlepsze rozwiązania dotyczące pracy z PPL.

Równoległość danych w PPL

Artykuł opis
Algorytmy równoległe

Instrukcje: pisanie pętli parallel_for

Instrukcje: pisanie pętli parallel_for_each

Instrukcje: równoległe wykonywanie operacji mapowania i zmniejszania
Opisuje parallel_for, , parallel_invokeparallel_for_eachi inne algorytmy równoległe. Użyj algorytmów równoległych, aby rozwiązać problemy z równoległymi danymi, które obejmują zbieranie danych.
Równoległe kontenery oraz obiekty

Instrukcje: korzystanie z kontenerów równoległych do zwiększania wydajności

Instrukcje: korzystanie z wyników połączonych do poprawiania wydajności

Instrukcje: korzystanie z wyników połączonych w celu łączenia zestawów
Opisuje klasę combinable , a także concurrent_vector, concurrent_queue, concurrent_unordered_mapi inne kontenery równoległe. Używaj kontenerów równoległych i obiektów, gdy wymagane są kontenery, które zapewniają bezpieczny wątkowo dostęp do ich elementów.
Biblioteka wzorów równoległych — najlepsze praktyki

Środowisko uruchomieniowe współbieżności — najlepsze praktyki ogólne
Zawiera porady i najlepsze rozwiązania dotyczące pracy z PPL.

Anulowanie zadań i algorytmów równoległych

Artykuł opis
Anulowanie w PPL Opisuje rolę anulowania w PPL, w tym sposób inicjowania żądań anulowania i reagowania na nie.
Instrukcje: używanie anulowania, aby przerwać pętlę równoległą

Instrukcje: używanie obsługi wyjątków, aby przerwać pętlę równoległą
Demonstruje dwa sposoby anulowania pracy równoległej danych.

aplikacje platforma uniwersalna systemu Windows

Artykuł opis
Tworzenie operacji asynchronicznych w języku C++ dla aplikacji platformy uniwersalnej systemu Windows Opisuje niektóre kluczowe kwestie, które należy wziąć pod uwagę, gdy używasz środowiska uruchomieniowego współbieżności do tworzenia operacji asynchronicznych w aplikacji platformy UWP.
Przewodnik: łączenie za pomocą zadań i żądań XML HTTP Przedstawia sposób łączenia zadań PPL z interfejsami IXMLHTTPRequest2 i IXMLHTTPRequest2Callback w celu wysyłania żądań HTTP GET i POST do usługi internetowej w aplikacji platformy UWP.
Przykłady aplikacji środowisko wykonawcze systemu Windows Zawiera przykłady kodu do pobrania i aplikacje demonstracyjne dla środowisko wykonawcze systemu Windows.

Programowanie przepływu danych w bibliotece agentów asynchronicznych

Artykuł opis
Agenci asynchroniczni

Bloki komunikatów asynchronicznych

Funkcje przekazywania komunikatów

Instrukcje: implementowanie różnych wzorców producent — konsument

Instrukcje: zapewnianie funkcji pracy dla wywoływania oraz klasy transformatora

Instrukcje: używanie transformatora w potoku danych

Instrukcje: wybieranie spośród zadań wykonanych

Instrukcje: wysyłanie komunikatu w regularnych odstępach czasu

Instrukcje: korzystanie z filtra bloku komunikatów
Opisuje agentów asynchronicznych, bloków komunikatów i funkcji przekazywania komunikatów, które są blokami konstrukcyjnymi do wykonywania operacji przepływu danych w środowisku uruchomieniowym współbieżności.
Przewodnik: tworzenie aplikacji opartej o agentów

Przewodnik: tworzenie agenta przepływu danych
Przedstawia sposób tworzenia podstawowych aplikacji opartych na agentach.
Przewodnik: tworzenie sieci przetwarzania obrazów Pokazuje, jak utworzyć sieć bloków komunikatów asynchronicznych, które wykonują przetwarzanie obrazów.
Przewodnik: korzystanie ze złączy w celu zapobiegania zakleszczeniom Używa problemu filozofów jadalni, aby zilustrować, jak używać środowiska uruchomieniowego współbieżności, aby zapobiec zakleszczeniom w aplikacji.
Przewodnik: tworzenie niestandardowego bloku komunikatów Pokazuje, jak utworzyć niestandardowy typ bloku komunikatów, który porządkuje komunikaty przychodzące według priorytetu.
Biblioteka agentów asynchronicznych — najlepsze praktyki

Środowisko uruchomieniowe współbieżności — najlepsze praktyki ogólne
Zawiera porady i najlepsze rozwiązania dotyczące pracy z agentami.

Obsługa wyjątków i debugowania

Artykuł opis
Obsługa wyjątków Opisuje sposób pracy z wyjątkami w środowisku uruchomieniowym współbieżności.
Równoległe narzędzia diagnostyczne Uczy, jak dostosować aplikacje i jak najefektywniej korzystać ze środowiska uruchomieniowego współbieżności.

Dostrajanie wydajności

Artykuł opis
Równoległe narzędzia diagnostyczne Uczy, jak dostosować aplikacje i jak najefektywniej korzystać ze środowiska uruchomieniowego współbieżności.
Wystąpienia harmonogramu

Instrukcje: zarządzanie wystąpieniem harmonogramu

Zasady harmonogramu

Instrukcje: określanie specjalnych zasad harmonogramu

Instrukcje: tworzenie agentów korzystających ze specjalnych zasad harmonogramu
Pokazuje, jak pracować z wystąpieniami harmonogramu i zasadami harmonogramu. W przypadku aplikacji klasycznych zasady harmonogramu umożliwiają kojarzenie określonych reguł z określonymi typami obciążeń. Można na przykład utworzyć jedno wystąpienie harmonogramu, aby uruchamiać niektóre zadania z podwyższonym priorytetem wątku i używać domyślnego harmonogramu do uruchamiania innych zadań z normalnym priorytetem wątku.
Grupy harmonogramu

Instrukcje: używanie grup harmonogramu do wywierania wpływu na kolejność wykonywania
Pokazuje, jak używać grup harmonogramu do affinitize lub grupowania powiązanych zadań razem. Na przykład może być wymagane wysoki stopień lokalności między powiązanymi zadaniami, gdy te zadania korzystają z wykonywania w tym samym węźle procesora.
Zadania lekkie Wyjaśnia, jak uproszczone zadania są przydatne do tworzenia pracy, która nie wymaga równoważenia obciążenia lub anulowania, oraz jak są one również przydatne do dostosowywania istniejącego kodu do użycia ze środowiskiem uruchomieniowym współbieżności.
Konteksty

Instrukcje: korzystanie z klasy kontekstu do wdrażania a kooperatywnego semafora

Instrukcje: używanie nadsubskrypcji do przesuwania opóźnienia
Opisuje sposób kontrolowania zachowania wątków zarządzanych przez środowisko uruchomieniowe współbieżności.
Funkcje zarządzania pamięcią

Instrukcje: używanie z funkcji Alloc i Free do poprawiania wydajności pamięci
Opisuje funkcje zarządzania pamięcią zapewniane przez środowisko uruchomieniowe współbieżności, które ułatwiają przydzielanie i zwalnianie pamięci w sposób współbieżny.

Dodatkowe zasoby

Artykuł opis
Wzorce i porady dotyczące programowania asynchronicznego w witrynie Hilo (aplikacje ze Sklepu Windows przy użyciu języka C++ i XAML) Dowiedz się, jak używaliśmy środowiska uruchomieniowego współbieżności do implementowania operacji asynchronicznych w hilo, aplikacji środowisko wykonawcze systemu Windows przy użyciu języka C++ i XAML.
Blog programowanie równoległe w kodzie natywnym Zawiera dodatkowe szczegółowe artykuły w blogu dotyczące programowania równoległego w środowisku uruchomieniowym współbieżności.
Forum przetwarzania równoległego w języku C++ i natywnym kodzie Umożliwia uczestnictwo w dyskusjach społeczności dotyczących środowiska uruchomieniowego współbieżności.
Programowanie równoległe Uczy cię o modelu programowania równoległego, który jest dostępny w programie .NET Framework.

Zobacz też

Odwołanie