Asynchroniczność i wielowątkowość w języku

21.60

Opis

Przejdź na wyższy poziom C#Programowanie wielowątkowe pozwala wykonywać różne czynności z wykorzystaniem więcej niż jednego wątku. W efekcie zwiększa się wydajność operacji, które były ograniczone parametrami procesora. W dodatku dzięki zastosowaniu programowania wielowątkowego zadania można wykonywać w tle, bez pogorszenia responsywności aplikacji. Asynchroniczność umożliwia także zachowanie responsywności aplikacji użytkowych oraz zwiększenie skalowalności aplikacji serwerowych.Brzmi obiecująco. Niestety, programowanie z wykorzystaniem wątków i asynchroniczności nie należy do najprostszych. Jest to dziedzina z natury skomplikowana i błędogenna, także w języku C#. Ten poradnik zbiera i zwięźle tłumaczy wszystkie zagadnienia związane z asynchronicznością i wielowątkowością w C#. Poszczególne tematy uzupełniono przykładami, pomagającymi lepiej zrozumieć problem, którego rozwiązanie można zastosować później w praktyce. Dla wygody w korzystaniu z książki każdy koncept opisano oddzielnie, jednak by go zrozumieć, trzeba przyswoić wiedzę z poprzednich rozdziałów.Dowiedz się, na czym polega wielowątkowość w C#Opanuj zasady programowania równoległegoNaucz się programować asynchroniczniePoznaj podstawowe zasady synchronizacjiSpis treści:Podziękowania 7Wstęp 9Krótka historia powstawania wielowątkowości 10Wyjaśnienie pojęć związanych z wątkami 11Rozdział 1. Programowanie wielowątkowe 131.1. Klasa Thread 151.1.1. Wykonywanie pracy w tle 161.2. Klasa ThreadPool 171.2.1. Rodzaje kolejek 171.2.2. Metoda UnsafeQueueUserWorkItem 181.3. Klasa Task 191.3.1. Porównanie z klasą Thread 191.3.2. Porównanie z klasą ThreadPool 201.3.3. Metody Wait, WaitAll i WaitAny 201.3.4. Właściwość Result 201.3.5. Metoda ContinueWith 211.3.6. Opcja AttachedToParent 211.3.7. Metoda StartNew właściwości Factory 221.3.8. Metoda Run 221.3.9. Enumeracja TaskStatus 241.4. Klasa TaskFactory 261.5. Struktura CancellationToken 271.5.1. Korzystanie ze struktury CancellationToken 271.6. Klasa CancellationTokenSource 291.7. Klasa Timer 301.8. Klasa TaskCompletionSource 321.9. Klasa SynchronizationContext 331.10. Klasa TaskScheduler 35ĆWICZENIA DO ROZDZIAŁU 1. 37Rozdział 2. Programowanie równoległe 392.1. Klasa Parallel 412.1.1. Metoda For 412.1.2. Metoda ForEach 412.1.3. Metoda Invoke 422.2. Technologia PLINQ 432.3. Klasa Partitioner 452.3.1. Optymalizacja krótkich operacji 462.4. Porównanie z klasą Task 47ĆWICZENIA DO ROZDZIAŁU 2. 48Rozdział 3. Programowanie asynchroniczne 493.1. Transformacja kodu asynchronicznego 513.2. Słowo kluczowe await 523.2.1. Porównanie z metodą ContinueWith 523.2.2. Użycie wraz z metodą Run 533.2.3. Współbieżność await 543.3. Słowo kluczowe async 553.3.1. Asynchroniczne wyrażenie lambda 553.3.2. Metoda z sygnaturą async void 563.3.3. Opis wykonywania się metody asynchronicznej 563.3.4. Sposoby radzenia sobie z wielokrotnymi wywołaniami 573.3.5. Sztuczna synchroniczność i asynchroniczność 583.4. Asynchroniczność wewnątrz LINQ 593.5. Zadania zakończone 603.6. Metoda Yield 613.6.1. Porównanie z właściwością CompletedTask 613.7. Interfejsy asynchroniczne 623.7.1. Interfejs IAsyncEnumerable623.7.2. Interfejs IAsyncDisposable 633.8. Własna implementacja 643.9. Rady dotyczące programowania asynchronicznego 653.9.1. Używanie metody ConfigureAwait 653.9.2. Wykonywanie metody asynchronicznej synchronicznie 653.9.3. Użycie await bezpośrednio przed zwróceniem metody 663.9.4. Asynchroniczność w konstruktorze 663.9.5. Przeciążenie przyjmujące delegat Func673.9.6. Bardzo długo wykonująca się praca 673.10. Struktura ValueTask 683.10.1. Interfejs IValueTaskSource 683.10.2. Konsumowanie ValueTask 693.10.3. Porównanie z klasą Task 70ĆWICZENIA DO ROZDZIAŁU 3. 71Rozdział 4. Synchronizacja 734.1. Podstawowe elementy synchronizacji 754.1.1. Klasa Volatile 754.1.2. Klasa Interlocked 764.2. Blokady trybu jądra 804.3. Blokady hybrydowe 814.3.1. Przekazywanie instancji do metod klasy Monitor 814.3.2. Słowo kluczowe lock 814.4. Blokady asynchroniczne 834.5. Leniwa inicjalizacja 844.5.1. Blokada z podwójnym sprawdzeniem 844.5.2. Klasa Lazy854.5.3. Klasa ThreadLocal854.6. Kolekcje współbieżne 874.6.1. Klasa BlockingCollection87ĆWICZENIA DO ROZDZIAŁU 4. 90ROZWIĄZANIA 91ROZWIĄZANIA DO ROZDZIAŁU 1. 91ROZWIĄZANIA DO ROZDZIAŁU 2. 94ROZWIĄZANIA DO ROZDZIAŁU 3. 95ROZWIĄZANIA DO ROZDZIAŁU 4. 97Źródła 101O autorze: Grzegorz Lang … zawodowy programista .NET, Application Developer w międzynarodowej korporacji Atos (w oddziale Poland Global Services). Zajmuje się kluczowym projektem wewnętrznym, jest w nim Lead Backend Developerem. W języku C# programuje od 2013 roku.

Informatyka

kasy fiskalne online od stycznia 2021, płatne drogi na węgrzech, mahomet karykatura, wnt a vat, klauzula poufności dla pracownika, krwawy orzeł wikingowie, nowa nazwa persji, podatek od akcji giełdowych, arkadiusz kraska odszkodowanie, umowa zlecenia druk, zaginiona dziewczyna 2 filmweb, hurtownia papierosów cennik, stworz metallum, czy bez bierzmowania można wziąć ślub, tablica przylotów gdańsk lotnisko

yyyyy