współbieżność w języku c#. receptury cała książka.pdf

(8082 KB) Pobierz
Spis treści
Przedmowa ........................................................................................ 9
1. Współbieżność: przegląd .................................................................. 15
1.1. Wprowadzenie do współbieżności
1.2. Wprowadzenie do programowania asynchronicznego
1.3. Wprowadzenie do programowania równoległego
1.4. Wprowadzenie do programowania reaktywnego (Rx)
1.5. Wprowadzenie do przepływów danych
1.6. Wprowadzenie do programowania wielowątkowego
1.7. Kolekcje dla aplikacji współbieżnych
1.8. Nowoczesne projektowanie
1.9. Podsumowanie informacji na temat kluczowych technologii
15
18
23
27
29
32
33
33
34
2. Podstawy async ................................................................................ 37
2.1. Wstrzymanie na określony czas
2.2. Zwracanie wykonanych zadań
2.3. Raportowanie postępu
2.4. Oczekiwanie na wykonanie zestawu zadań
2.5. Oczekiwanie na wykonanie jakiegokolwiek zadania
2.6. Przetwarzanie wykonanych zadań
2.7. Unikanie kontekstu dla kontynuacji
2.8. Obsługa wyjątków z metod async typu Task
2.9. Obsługa wyjątków z metod async typu void
38
40
42
43
46
48
51
53
55
5
Kup książkę
Poleć książkę
3. Podstawy przetwarzania równoległego .............................................59
3.1. Równoległe przetwarzanie danych
3.2. Równoległa agregacja
3.3. Równoległe wywołanie
3.4. Równoległość dynamiczna
3.5. Parallel LINQ
60
62
63
65
67
4. Podstawy przepływu danych .............................................................69
4.1. Łączenie bloków
4.2. Propagowanie błędów
4.3. Usuwanie połączeń między blokami
4.4. Ograniczanie pojemności bloków
4.5. Przetwarzanie równoległe
za pomocą bloków przepływu danych
4.6. Tworzenie niestandardowych bloków
70
72
74
75
76
77
5. Podstawy Rx .....................................................................................81
5.1. Konwersja zdarzeń .NET
5.2. Wysyłanie powiadomień do kontekstu
5.3. Grupowanie danych zdarzeń za pomocą okienek i buforów
5.4. Ujarzmianie strumieni zdarzeń za pomocą ograniczania
przepływu i próbkowania
5.5. Limity czasu
82
85
87
90
92
6. Testowanie .......................................................................................97
6.1. Testy jednostkowe metod async
6.2. Testy jednostkowe metod async,
które powinny zakończyć się niepowodzeniem
6.3. Testy jednostkowe metod async void
6.4. Testy jednostkowe siatek przepływu danych
6.5. Testy jednostkowe strumieni obserwowalnych Rx
6.6. Testy jednostkowe strumieni obserwowalnych Rx
za pomocą atrapy harmonogramu
98
100
102
104
105
108
6
Spis treści
Poleć książkę
Kup książkę
7. Interoperacyjność ........................................................................... 113
7.1. Metody opakowujące async dla metod „async”
ze zdarzeniami „Completed”
7.2. Metody opakowujące async dla metod „Begin/End”
7.3. Metody opakowujące async dla dowolnych operacji
lub zdarzeń
7.4. Metody opakowujące async dla kodu równoległego
7.5. Metody opakowujące async
dla strumieni obserwowalnych Rx
7.6. Metody opakowujące strumieni obserwowalnych Rx
dla kodu asynchronicznego
7.7. Strumienie obserwowalne Rx i siatki przepływu danych
113
116
117
119
120
122
124
8. Kolekcje ......................................................................................... 127
8.1. Niemutowalne stosy i kolejki
8.2. Listy niemutowalne
8.3. Zbiory niemutowalne
8.4. Słowniki niemutowalne
8.5. Słowniki bezpieczne wątkowo
8.6. Kolejki blokujące
8.7. Stosy i multizbiory blokujące
8.8. Kolejki asynchroniczne
8.9. Stosy i multizbiory asynchroniczne
8.10. Kolejki blokujące/asynchroniczne
130
133
135
137
140
142
145
147
150
153
9. Anulowanie .................................................................................... 159
9.1. Wysyłanie żądań anulowania
9.2. Reagowanie na żądania anulowania poprzez odpytywanie
9.3. Anulowanie z powodu przekroczenia limitu czasu
9.4. Anulowanie kodu async
9.5. Anulowanie kodu równoległego
9.6. Anulowanie kodu reaktywnego
9.7. Anulowanie siatek przepływu danych
9.8. Wstrzykiwanie żądań anulowania
9.9. Współdziałanie z innymi systemami anulowania
Spis treści
Kup książkę
160
163
165
167
168
170
172
173
175
7
Poleć książkę
10. Przyjazne funkcyjnie programowanie obiektowe ............................. 179
10.1. Interfejsy async i dziedziczenie
10.2. Konstruowanie async: fabryki
10.3. Konstruowanie async:
wzorzec inicjowania asynchronicznego
10.4. Właściwości async
10.5. Zdarzenia async
10.6. Usuwanie async
180
181
184
188
192
195
11. Synchronizacja ................................................................................ 201
11.1. Blokady
11.2. Blokady async
11.3. Sygnały blokujące
11.4. Sygnały async
11.5. Ograniczanie współbieżności
207
209
212
213
215
12. Planowanie .................................................................................... 219
12.1. Planowanie pracy dla puli wątków
12.2. Wykonywanie kodu za pomocą dyspozytora zadań
12.3. Planowanie kodu równoległego
12.4. Synchronizacja przepływu danych
z wykorzystaniem dyspozytorów
219
221
224
225
13. Scenariusze .................................................................................... 227
13.1. Inicjowanie współdzielonych zasobów
13.2. Odroczona ewaluacja Rx
13.3. Asynchroniczne wiązanie danych
227
229
231
Skorowidz ...................................................................................... 237
8
Spis treści
Poleć książkę
Kup książkę
Zgłoś jeśli naruszono regulamin