Język C++ i przetwarzanie współbieżne w akcji
- Autor:
- Anthony Williams
- Wydawnictwo:
- Helion
- Ocena:
- 4.6/6 Opinie: 0
- Stron:
- 576
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
Sprawdź nowe wydanie
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Anthony Williams
Opis ebooka: Język C++ i przetwarzanie współbieżne w akcji
Odkryj wszystkie tajemnice wielowątkowych aplikacji!
Współbieżne przetwarzanie danych to największe wyzwanie dla programisty. Na każdym kroku czyhają na niego najbardziej wymyślne pułapki, a wykrycie pomyłki stanowi nie lada wyzwanie. Każdy programista wzdryga się na samą myśl o implementacji wielowątkowych rozwiązań. Nie musi tak być!
Dzięki tej książce poradzisz sobie z większością zadań i zwinnie ominiesz zastawione pułapki. W trakcie lektury dowiesz się, jak zidentyfikować zadania, w których zastosowanie współbieżności ma sens, oraz jak zarządzać wątkami. Ponadto nauczysz się chronić współdzielone dane oraz synchronizować współbieżne operacje. Duży nacisk został tu położony na zagadnienia związane z projektowaniem współbieżnych struktur danych oraz kodu. Osobny rozdział poświęcono debugowaniu aplikacji wielowątkowych. Książka ta jest długo oczekiwaną pozycją, która ułatwi codzienne życie programistom C++.
Dzięki tej książce:
- zaprojektujesz współbieżny kod oraz struktury
- ochronisz współdzielone dane
- poznasz zaawansowane metody zarządzania wątkami
- bez problemu przeprowadzisz debugowanie Twojej wielowątkowej aplikacji
Sprawdź, jak tworzyć niezawodne oprogramowanie wielowątkowe!
Wybrane bestsellery
-
Ta książka jest drugim, zaktualizowanym i uzupełnionym wydaniem doskonałego podręcznika dla profesjonalistów. Szczegółowo opisano w niej wszystkie etapy programowania współbieżnego: od utworzenia wątków po projektowanie wielowątkowych algorytmów i struktur danych. Przedstawiono zastosowania klas ...
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
(64.35 zł najniższa cena z 30 dni)59.40 zł
99.00 zł(-40%) -
Ta książka pomoże Ci się przygotować do pracy na stanowisku testera oprogramowania, a także zapewni wsparcie podczas wykonywania nowych zadań. Znajdziesz tu dokładne omówienie podstaw testowania, jego różnych rodzajów i poziomów w odniesieniu do zastosowania na różnych etapach pracy nad projektem...
Tester samouk. Praktyczny przewodnik po testowaniu oprogramowania na bazie gotowego projektu Tester samouk. Praktyczny przewodnik po testowaniu oprogramowania na bazie gotowego projektu
(47.20 zł najniższa cena z 30 dni)35.40 zł
59.00 zł(-40%) -
Firmy z branży IT prześcigają się w tworzeniu rozwiązań zwiększających wydajność pracy, jak również podnoszących poziom specjalizacji pracowników w określonych dziedzinach. Od kilku już lat pozycja full stack developera, który wykonywał wszystkie prace programistyczne, jest wielką rzadkością. Obe...
Postman i SQL. Kurs video. Metody testowania REST API i przeszukiwania baz danych Postman i SQL. Kurs video. Metody testowania REST API i przeszukiwania baz danych
(63.60 zł najniższa cena z 30 dni)39.90 zł
159.00 zł(-75%) -
Zigi to postać fikcyjna - warta poznania! Autor książki, sam będący od wielu lat testerem, wyposażył swojego bohatera we własne doświadczenia. Dołożył do nich trochę „case’ów”, które widział, o których słyszał lub czytał, ubrał je w przystępne słowa i sfabularyzował dla podkręce...(38.35 zł najniższa cena z 30 dni)
35.40 zł
59.00 zł(-40%) -
Testowanie oprogramowania to jedna z najdynamiczniej rozwijających się dziedzin inżynierii oprogramowania. Zarobki doświadczonych testerów są porównywalne z wynagrodzeniem, jakie otrzymują dobrzy programiści. Aby rozpocząć karierę w tym zawodzie, trzeba się legitymować odpowiednimi umiejętnościam...
Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II
(70.85 zł najniższa cena z 30 dni)65.40 zł
109.00 zł(-40%) -
Właściwe wymagania to nie tylko kwestia ich dokumentacji, ale też przede wszystkim kwestia odpowiedniego ich pozyskania i walidacji. Dobrej jakości wymagania zmniejszają ryzyko produktowe i projektowe, pozwalają tworzyć systemy, które realnie spełniają potrzeby interesariuszy i umożliwiają im osi...
Inżynieria wymagań. Kurs video. Modelowanie wymagań i rozwiązań w projektach informatycznych Inżynieria wymagań. Kurs video. Modelowanie wymagań i rozwiązań w projektach informatycznych
(39.90 zł najniższa cena z 30 dni)39.90 zł
169.00 zł(-76%) -
Naglący termin, niedoczas, permanentne opóźnienie - oto najwierniejsi towarzysze i zarazem najwięksi wrogowie kierownika projektu. Nawet certyfikowani project managerowie, ludzie z ogromną wiedzą i nie mniejszym doświadczeniem, raz po raz znajdują się w sytuacji, w której potrzeba naprawdę wielki...(38.35 zł najniższa cena z 30 dni)
35.40 zł
59.00 zł(-40%) -
Nie pamiętasz jakiegoś algorytmu? Nie wiesz, jaką strukturę danych należy zastosować? Nie masz pojęcia, jak wyznaczyć złożoność obliczeniową algorytmu? Nie martw się, Twoje problemy należą już do przeszłości! Tablice informatyczne. Algorytmy pozwolą Ci szybko odnaleźć i przypomnieć sobie podstawo...(8.50 zł najniższa cena z 30 dni)
6.90 zł
17.00 zł(-59%) -
Trzymasz w dłoni kolejne wydanie niezwykle popularnego podręcznika do nauki C. Podobnie jak poprzednie wydania, także to zostało zaktualizowane i uzupełnione, między innymi o elementy standardu C11. Książka stanowi przemyślane, przejrzyste i wnikliwe wprowadzenie do języka C. Czytelnie wyjaśnia z...(116.35 zł najniższa cena z 30 dni)
107.40 zł
179.00 zł(-40%) -
Książka Wojciecha Próchnickiego jest skierowana do pracowników działu finansów, controllingu i księgowości. Wyjaśnia możliwości pracy z Excelem na przykładach, omawiając piętnaście różnych przypadków i problemów, z którymi może spotkać się osoba pracująca w tych obszarach. Zakres tematyczny omawi...
Zastosowanie Excela w pracy analityka finansowego, specjalisty ds. controllingu i analityka sprzedaży Zastosowanie Excela w pracy analityka finansowego, specjalisty ds. controllingu i analityka sprzedaży
(29.49 zł najniższa cena z 30 dni)19.90 zł
59.00 zł(-66%)
O autorze ebooka
Anthony Williams od ponad dwudziestu lat programuje w C++, a także udziela porad i szkoli w tym zakresie. Od 2001 roku jest aktywnym członkiem organizacji BSI C++ Standards Panel. Brał udział w opracowywaniu i implementacji standardów C++. Kontynuuje prace nad rozszerzaniem pakietu współbieżności w tym języku.
Ebooka "Język C++ i przetwarzanie współbieżne w akcji" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Język C++ i przetwarzanie współbieżne w akcji" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Język C++ i przetwarzanie współbieżne w akcji" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- Tytuł oryginału:
- C++ Concurrency in Action: Practical Multithreading
- Tłumaczenie:
- Mikołaj Szczepaniak
- ISBN Książki drukowanej:
- 978-83-246-5086-6, 9788324650866
- Data wydania książki drukowanej:
- 2013-04-17
- ISBN Ebooka:
- 978-83-246-7140-3, 9788324671403
- Data wydania ebooka:
- 2013-06-07 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 168x237
- Numer z katalogu:
- 12297
- Rozmiar pliku Pdf:
- 6.0MB
- Rozmiar pliku ePub:
- 3.8MB
- Rozmiar pliku Mobi:
- 9.8MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
Spis treści ebooka
- 1.1. Czym jest współbieżność? (20)
- 1.1.1. Współbieżność w systemach komputerowych (20)
- 1.1.2. Modele współbieżności (22)
- 1.2. Dlaczego warto stosować współbieżność? (25)
- 1.2.1. Stosowanie współbieżności do podziału zagadnień (25)
- 1.2.2. Stosowanie współbieżności do podniesienia wydajności (26)
- 1.2.3. Kiedy nie należy stosować współbieżności (27)
- 1.3. Współbieżność i wielowątkowość w języku C++ (28)
- 1.3.1. Historia przetwarzania wielowątkowego w języku C++ (29)
- 1.3.2. Obsługa współbieżności w nowym standardzie (30)
- 1.3.3. Efektywność biblioteki wątków języka C++ (30)
- 1.3.4. Mechanizmy związane z poszczególnymi platformami (32)
- 1.4. Do dzieła! (32)
- 1.4.1. "Witaj świecie współbieżności" (32)
- 1.5. Podsumowanie (34)
- 2.1. Podstawowe zarządzanie wątkami (36)
- 2.1.1 Uruchamianie wątku (36)
- 2.1.2. Oczekiwanie na zakończenie wątku (39)
- 2.1.3. Oczekiwanie w razie wystąpienia wyjątku (39)
- 2.1.4. Uruchamianie wątków w tle (42)
- 2.2. Przekazywanie argumentów do funkcji wątku (43)
- 2.3. Przenoszenie własności wątku (46)
- 2.4. Wybór liczby wątków w czasie wykonywania (49)
- 2.5. Identyfikowanie wątków (52)
- 2.6. Podsumowanie (54)
- 3.1. Problemy związane ze współdzieleniem danych przez wątki (56)
- 3.1.1. Sytuacja wyścigu (58)
- 3.1.2. Unikanie problematycznych sytuacji wyścigu (59)
- 3.2. Ochrona współdzielonych danych za pomocą muteksów (60)
- 3.2.1. Stosowanie muteksów w języku C++ (60)
- 3.2.2. Projektowanie struktury kodu z myślą o ochronie współdzielonych danych (62)
- 3.2.3. Wykrywanie sytuacji wyścigu związanych z interfejsami (63)
- 3.2.4. Zakleszczenie: problem i rozwiązanie (71)
- 3.2.5. Dodatkowe wskazówki dotyczące unikania zakleszczeń (73)
- 3.2.6. Elastyczne blokowanie muteksów za pomocą szablonu std::unique_lock (79)
- 3.2.7. Przenoszenie własności muteksu pomiędzy zasięgami (80)
- 3.2.8. Dobór właściwej szczegółowości blokad (82)
- 3.3. Alternatywne mechanizmy ochrony współdzielonych danych (84)
- 3.3.1. Ochrona współdzielonych danych podczas inicjalizacji (84)
- 3.3.2. Ochrona rzadko aktualizowanych struktur danych (88)
- 3.3.3. Blokowanie rekurencyjne (90)
- 3.4. Podsumowanie (91)
- 4.1. Oczekiwanie na zdarzenie lub inny warunek (94)
- 4.1.1. Oczekiwanie na spełnienie warunku za pomocą zmiennych warunkowych (95)
- 4.1.2. Budowa kolejki gwarantującej bezpieczne przetwarzanie wielowątkowe przy użyciu zmiennych warunkowych (97)
- 4.2. Oczekiwanie na jednorazowe zdarzenia za pomocą przyszłości (102)
- 4.2.1. Zwracanie wartości przez zadania wykonywane w tle (103)
- 4.2.2. Wiązanie zadania z przyszłością (106)
- 4.2.3. Obietnice (szablon std::promise) (109)
- 4.2.4. Zapisywanie wyjątku na potrzeby przyszłości (111)
- 4.2.5. Oczekiwanie na wiele wątków (112)
- 4.3. Oczekiwanie z limitem czasowym (115)
- 4.3.1. Zegary (115)
- 4.3.2. Okresy (117)
- 4.3.3. Punkty w czasie (118)
- 4.3.4. Funkcje otrzymujące limity czasowe (120)
- 4.4. Upraszczanie kodu za pomocą technik synchronizowania operacji (121)
- 4.4.1. Programowanie funkcyjne przy użyciu przyszłości (122)
- 4.4.2. Synchronizacja operacji za pomocą przesyłania komunikatów (127)
- 4.5. Podsumowanie (131)
- 5.1. Podstawowe elementy modelu pamięci (134)
- 5.1.1. Obiekty i miejsca w pamięci (134)
- 5.1.2. Obiekty, miejsca w pamięci i przetwarzanie współbieżne (135)
- 5.1.3. Kolejność modyfikacji (136)
- 5.2. Operacje i typy atomowe języka C++ (137)
- 5.2.1. Standardowe typy atomowe (138)
- 5.2.2. Operacje na typie std::atomic_flag (141)
- 5.2.3. Operacje na typie std::atomic<bool> (143)
- 5.2.4. Operacje na typie std::atomic<T*> - arytmetyka wskaźników (146)
- 5.2.5. Operacje na standardowych atomowych typach całkowitoliczbowych (147)
- 5.2.6. Główny szablon klasy std::atomic<> (147)
- 5.2.7. Wolne funkcje dla operacji atomowych (150)
- 5.3. Synchronizacja operacji i wymuszanie ich porządku (151)
- 5.3.1. Relacja synchronizacji (152)
- 5.3.2. Relacja poprzedzania (154)
- 5.3.3. Porządkowanie pamięci na potrzeby operacji atomowych (155)
- 5.3.4. Sekwencje zwalniania i relacja synchronizacji (175)
- 5.3.5. Ogrodzenia (178)
- 5.3.6. Porządkowanie operacji nieatomowych za pomocą operacji atomowych (180)
- 5.4. Podsumowanie (182)
- 6.1. Co oznacza projektowanie struktur danych pod kątem współbieżności? (184)
- 6.1.1. Wskazówki dotyczące projektowania współbieżnych struktur danych (185)
- 6.2. Projektowanie współbieżnych struktur danych przy użyciu blokad (186)
- 6.2.1. Stos gwarantujący bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad (187)
- 6.2.2. Kolejka gwarantująca bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad i zmiennych warunkowych (190)
- 6.2.3. Kolejka gwarantująca bezpieczeństwo przetwarzania wielowątkowego przy użyciu szczegółowych blokad i zmiennych warunkowych (194)
- 6.3. Projektowanie złożonych struktur danych przy użyciu blokad (207)
- 6.3.1. Implementacja tablicy wyszukiwania gwarantującej bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad (207)
- 6.3.2. Implementacja listy gwarantującej bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad (213)
- 6.4. Podsumowanie (218)
- 7.1. Definicje i ich praktyczne znaczenie (220)
- 7.1.1. Rodzaje nieblokujących struktur danych (220)
- 7.1.2. Struktury danych bez blokad (221)
- 7.1.3. Struktury danych bez oczekiwania (222)
- 7.1.4. Zalety i wady struktur danych bez blokad (222)
- 7.2. Przykłady struktur danych bez blokad (223)
- 7.2.1. Implementacja stosu gwarantującego bezpieczeństwo przetwarzania wielowątkowego bez blokad (224)
- 7.2.2. Eliminowanie niebezpiecznych wycieków - zarządzanie pamięcią w strukturach danych bez blokad (228)
- 7.2.3. Wykrywanie węzłów, których nie można odzyskać, za pomocą wskaźników ryzyka (233)
- 7.2.4. Wykrywanie używanych węzłów metodą zliczania referencji (242)
- 7.2.5. Zmiana modelu pamięci używanego przez operacje na stosie bez blokad (247)
- 7.2.6. Implementacja kolejki gwarantującej bezpieczeństwo przetwarzania wielowątkowego bez blokad (252)
- 7.3. Wskazówki dotyczące pisania struktur danych bez blokad (264)
- 7.3.1. Wskazówka: na etapie tworzenia prototypu należy stosować tryb std::memory_order_seq_cst (265)
- 7.3.2. Wskazówka: należy używać schematu odzyskiwania pamięci bez blokad (265)
- 7.3.3 Wskazówka: należy unikać problemu ABA (266)
- 7.3.4. Wskazówka: należy identyfikować pętle aktywnego oczekiwania i wykorzystywać czas bezczynności na wspieranie innego wątku (267)
- 7.4. Podsumowanie (267)
- 8.1. Techniki dzielenia pracy pomiędzy wątki (270)
- 8.1.1. Dzielenie danych pomiędzy wątki przed rozpoczęciem przetwarzania (271)
- 8.1.2. Rekurencyjne dzielenie danych (272)
- 8.1.3. Dzielenie pracy według typu zadania (276)
- 8.2. Czynniki wpływające na wydajność współbieżnego kodu (279)
- 8.2.1. Liczba procesorów (280)
- 8.2.2. Współzawodnictwo o dane i ping-pong bufora (281)
- 8.2.3. Fałszywe współdzielenie (284)
- 8.2.4. Jak blisko należy rozmieścić dane? (285)
- 8.2.5. Nadsubskrypcja i zbyt intensywne przełączanie zadań (285)
- 8.3. Projektowanie struktur danych pod kątem wydajności przetwarzania wielowątkowego (286)
- 8.3.1. Podział elementów tablicy na potrzeby złożonych operacji (287)
- 8.3.2. Wzorce dostępu do danych w pozostałych strukturach (289)
- 8.4. Dodatkowe aspekty projektowania współbieżnych struktur danych (291)
- 8.4.1. Bezpieczeństwo wyjątków w algorytmach równoległych (291)
- 8.4.2. Skalowalność i prawo Amdahla (298)
- 8.4.3. Ukrywanie opóźnień za pomocą wielu wątków (300)
- 8.4.4. Skracanie czasu reakcji za pomocą technik przetwarzania równoległego (301)
- 8.5. Projektowanie współbieżnego kodu w praktyce (303)
- 8.5.1. Równoległa implementacja funkcji std::for_each (304)
- 8.5.2. Równoległa implementacja funkcji std::find (306)
- 8.5.3. Równoległa implementacja funkcji std::partial_sum (312)
- 8.6. Podsumowanie (322)
- 9.1. Pule wątków (324)
- 9.1.1. Najprostsza możliwa pula wątków (324)
- 9.1.2. Oczekiwanie na zadania wysyłane do puli wątków (327)
- 9.1.3. Zadania oczekujące na inne zadania (330)
- 9.1.4. Unikanie współzawodnictwa w dostępie do kolejki zadań (333)
- 9.1.5. Wykradanie zadań (335)
- 9.2. Przerywanie wykonywania wątków (340)
- 9.2.1. Uruchamianie i przerywanie innego wątku (340)
- 9.2.2. Wykrywanie przerwania wątku (342)
- 9.2.3. Przerywanie oczekiwania na zmienną warunkową (343)
- 9.2.4. Przerywanie oczekiwania na zmienną typu std::condition_variable_any (346)
- 9.2.5. Przerywanie pozostałych wywołań blokujących (348)
- 9.2.6. Obsługa przerwań (349)
- 9.2.7. Przerywanie zadań wykonywanych w tle podczas zamykania aplikacji (350)
- 9.3. Podsumowanie (352)
- 10.1. Rodzaje błędów związanych z przetwarzaniem współbieżnym (354)
- 10.1.1. Niechciane blokowanie (354)
- 10.1.2. Sytuacje wyścigu (355)
- 10.2. Techniki lokalizacji błędów związanych z przetwarzaniem współbieżnym (357)
- 10.2.1. Przeglądanie kodu w celu znalezienia ewentualnych błędów (357)
- 10.2.2. Znajdowanie błędów związanych z przetwarzaniem współbieżnym poprzez testowanie kodu (359)
- 10.2.3. Projektowanie kodu pod kątem łatwości testowania (361)
- 10.2.4. Techniki testowania wielowątkowego kodu (363)
- 10.2.5. Projektowanie struktury wielowątkowego kodu testowego (366)
- 10.2.6. Testowanie wydajności wielowątkowego kodu (369)
- 10.3. Podsumowanie (370)
- A.1. Referencje do r-wartości (371)
- A.1.1. Semantyka przenoszenia danych (372)
- A.1.2. Referencje do r-wartości i szablony funkcji (375)
- A.2. Usunięte funkcje (376)
- A.3. Funkcje domyślne (377)
- A.4. Funkcje constexpr (381)
- A.4.1. Wyrażenia constexpr i typy definiowane przez użytkownika (382)
- A.4.2. Obiekty constexpr (385)
- A.4.3. Wymagania dotyczące funkcji constexpr (385)
- A.4.4. Słowo constexpr i szablony (386)
- A.5. Funkcje lambda (386)
- A.5.1. Funkcje lambda odwołujące się do zmiennych lokalnych (388)
- A.6. Szablony zmiennoargumentowe (391)
- A.6.1. Rozwijanie paczki parametrów (392)
- A.7. Automatyczne określanie typu zmiennej (395)
- A.8. Zmienne lokalne wątków (396)
- A.9. Podsumowanie (397)
- D.1. Nagłówek <chrono> (419)
- D.1.1. Szablon klasy std::chrono::duration (420)
- D.1.2. Szablon klasy std::chrono::time_point (429)
- D.1.3. Klasa std::chrono::system_clock (431)
- D.1.4. Klasa std::chrono::steady_clock (433)
- D.1.5. Definicja typu std::chrono::high_resolution_clock (435)
- D.2. Nagłówek <condition_variable> (435)
- D.2.1. Klasa std::condition_variable (436)
- D.2.2. Klasa std::condition_variable_any (444)
- D.3. Nagłówek <atomic> (452)
- D.3.1. Definicje typów std::atomic_xxx (454)
- D.3.2. Makra ATOMIC_xxx_LOCK_FREE (454)
- D.3.3. Makro ATOMIC_VAR_INIT (455)
- D.3.4. Typ wyliczeniowy std::memory_order (455)
- D.3.5. Funkcja std::atomic_thread_fence (456)
- D.3.6. Funkcja std::atomic_signal_fence (457)
- D.3.7. Klasa std::atomic_flag (457)
- D.3.8. Szablon klasy std::atomic (460)
- D.3.9. Specjalizacje szablonu std::atomic (471)
- D.3.10. Specjalizacje szablonu std::atomic<typ-całkowitoliczbowy> (472)
- D.4. Nagłówek <future> (489)
- D.4.1. Szablon klasy std::future (490)
- D.4.2. Szablon klasy std::shared_future (495)
- D.4.3. Szablon klasy std::packaged_task (501)
- D.4.4. Szablon klasy std::promise (507)
- D.4.5. Szablon funkcji std::async (513)
- D.5. Nagłówek <mutex> (514)
- D.5.1. Klasa std::mutex (515)
- D.5.2. Klasa std::recursive_mutex (518)
- D.5.3. Klasa std::timed_mutex (520)
- D.5.4. Klasa std::recursive_timed_mutex (524)
- D.5.5. Szablon klasy std::lock_guard (529)
- D.5.6. Szablon klasy std::unique_lock (530)
- D.5.7. Szablon funkcji std::lock (540)
- D.5.8. Szablon funkcji std::try_lock (541)
- D.5.9. Klasa std::once_flag (541)
- D.5.10. Szablon funkcji std::call_once (542)
- D.6. Nagłówek <ratio> (543)
- D.6.1. Szablon klasy std::ratio (544)
- D.6.2. Alias szablonu std::ratio_add (544)
- D.6.3. Alias szablonu std::ratio_subtract (545)
- D.6.4. Alias szablonu std::ratio_multiply (545)
- D.6.5. Alias szablonu std::ratio_divide (546)
- D.6.6. Szablon klasy std::ratio_equal (547)
- D.6.7. Szablon klasy std::ratio_not_equal (547)
- D.6.8. Szablon klasy std::ratio_less (547)
- D.6.9. Szablon klasy std::ratio_greater (548)
- D.6.10. Szablon klasy std::ratio_less_equal (548)
- D.6.11. Szablon klasy std::ratio_greater_equal (548)
- D.7. Nagłówek <thread> (549)
- D.7.1. Klasa std::thread (549)
- D.7.2. Przestrzeń nazw std::this_thread (558)
Słowo wstępne (11)
Podziękowania (13)
O tej książce (15)
Rozdział 1. Witaj, świecie współbieżności w C++! (19)
Rozdział 2. Zarządzanie wątkami (35)
Rozdział 3. Współdzielenie danych przez wątki (55)
Rozdział 4. Synchronizacja współbieżnych operacji (93)
Rozdział 5. Model pamięci języka C++ i operacje na typach atomowych (133)
Rozdział 6. Projektowanie współbieżnych struktur danych przy użyciu blokad (183)
Rozdział 7. Projektowanie współbieżnych struktur danych bez blokad (219)
Rozdział 8. Projektowanie współbieżnego kodu (269)
Rozdział 9. Zaawansowane zarządzanie wątkami (323)
Rozdział 10. Testowanie i debugowanie aplikacji wielowątkowych (353)
Dodatek A Krótki przegląd wybranych elementów języka C++11 (371)
Dodatek B Krótkie zestawienie bibliotek przetwarzania współbieżnego (399)
Dodatek C Framework przekazywania komunikatów i kompletny przykład implementacji systemu bankomatu (401)
Dodatek D Biblioteka wątków języka C++ (419)
Materiały dodatkowe (561)
Skorowidz (563)
Oceny i opinie klientów: Język C++ i przetwarzanie współbieżne w akcji Anthony Williams (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.