Udostępnij za pośrednictwem


środowisko uruchomieniowe współbieżności

Środowisko uruchomieniowe współbieżności dla języka C++ ułatwia pisanie niezawodnych, skalowalnych i responsywnych 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 pomóc ci rozpocząć pracę z Concurrency Runtime.

Aby uzyskać dokumentację referencyjną, zobacz Dokumentacja.

Wskazówka

Ś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 Wyjaśnia, dlaczego Concurrency Runtime jest ważny 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 wykonawczego współbieżności Porównuje OpenMP z Concurrency Runtime i zawiera przykłady dotyczące sposobu migrowania istniejącego kodu OpenMP, aby korzystać z Concurrency Runtime.
Biblioteka równoległych wzorców (PLL) Wprowadza cię do PPL, który 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ń Wprowadzenie do harmonogramu zadań, który umożliwia dostosowanie wydajności aplikacji desktopowych korzystających ze środowiska Concurrency Runtime.

Paralelizm zadań 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 Interfejsu 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

Najlepsze ogólne praktyki w środowisku uruchomieniowym współbieżności
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_for_eachparallel_invokei 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

Jak: używać combinable do poprawy wydajności

Jak używać kombinatora do łą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 potrzebujesz kontenerów zapewniających bezpieczny dostęp wątkowy do ich elementów.
Biblioteka wzorów równoległych — najlepsze praktyki

Najlepsze ogólne praktyki w środowisku uruchomieniowym współbieżności
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.
Jak: użycie mechanizmu anulowania w celu przerwania pętli równoległej

Jak zastosować obsługę wyjątków, aby zakończyć pętlę równoległą
Demonstruje dwa sposoby anulowania zadania równoległego przetwarzania danych.

aplikacje Universal Windows Platform

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

Jak: Zapewnić funkcje robocze klasom wywołania i transformatora

Jak użyć 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, bloki komunikatów i funkcje przekazywania wiadomości, które są blokami konstrukcyjnymi do wykonywania operacji przepływu danych w środowisku wykonawczym 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: użycie łączenia do zapobiegania zakleszczeniom Używa problemu ucztujących filozofów, aby zilustrować, jak używać środowiska współbieżności, aby uniknąć zakleszczeń 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

Najlepsze ogólne praktyki w środowisku uruchomieniowym współbieżności
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, jak pracować z wyjątkami w środowisku współbieżnego uruchamiania.
Równoległe narzędzia diagnostyczne Uczy, jak optymalizować aplikacje i jak najefektywniej korzystać ze środowiska uruchomieniowego Concurrency.

Dostrajanie wydajności

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

Jak: zarządzać instancją harmonogramu

Zasady harmonogramu

Instrukcje: określanie specjalnych zasad harmonogramu

Jak: Tworzyć agentów używających określonych zasad harmonogramu
Pokazuje, jak zarządzać 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 planowania

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

Jak: używać Klasy Context do implementacji kooperatywnego semafora

Instrukcje: używanie nadsubskrypcji do przesuwania opóźnienia
Opisuje, jak kontrolować zachowanie wątków zarządzanych przez Concurrency Runtime.
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ą, które oferuje Concurrency Runtime, aby ułatwić współbieżne przydzielanie i zwalnianie pamięci.

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 Concurrency Runtime do implementowania operacji asynchronicznych w Hilo, aplikacji Windows Runtime przy użyciu języka C++ i XAML.
Blog o programowaniu równoległym w kodzie natywnym Zawiera dodatkowe, szczegółowe artykuły na blogu dotyczące programowania równoległego w Concurrency Runtime.
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ż

Referencja