C# dla początkujących.

Programowanie asynchroniczne i równoległe

Ratings: 5.00 / 5.00




Description

Obierz kurs na programowanie skalowalne

Słowem kluczem w dzisiejszym świecie jest czas. A właściwie nieustanny niedoczas — dlatego oczekujemy, że wszystko, a z pewnością komputery, telefony i inne urządzenia elektroniczne, będzie pracować szybciej, sprawniej i wydajniej. Stąd standardem stały się procesory posiadające wiele rdzeni — co oczywiście pozytywnie wpływa na ich wydajność, gdy pracuje się na kilku programach równocześnie. Niestety, prędkość działania pojedynczego rdzenia nie rośnie tak szybko, jakbyśmy sobie tego życzyli, więc poszczególne aplikacje, dostępne za pośrednictwem urządzenia i operujące na pojedynczym rdzeniu, wcale nie pracują sprawniej. Podobnie rzecz ma się z oprogramowaniem dostępnym online — o ile staje się modne, szybko pada ofiarą własnej popularności i zawiesza się, kiedy wielu użytkowników chce z niego równocześnie skorzystać.

Jak można temu zaradzić? Pisząc lepszy, bardziej skalowalny kod. Od dłuższego czasu jest to możliwe w aplikacjach tworzonych w środowisku .NET. Od niedawna Microsoft udostępnia wiele udogodnień, które sprawiają, że pisanie takiego kodu jest dziś prostsze, przyjemniejsze i łatwiejsze do zrozumienia. Tworzenie kodu asynchronicznego, znajomość sposobów synchronizacji między wątkami, umiejętność optymalizacji obliczeń przez wykorzystanie obliczeń równoległych — to umiejętności wymagane w codziennej pracy, właściwie niezależnie od dziedziny biznesu, w której operuje programista.

Co Cię czeka podczas naszego profesjonalnego szkolenia?

W trakcie niniejszego kursu video:

  • nauczysz się programowania asynchronicznego;

  • przyjrzysz się mechanizmom pozwalającym dokonywać równoległych obliczeń na wielu wątkach;

  • dowiesz się, jak synchronizować dostęp do zasobów.

Co więcej...

  • poznasz sposoby na korzystanie z wbudowanych i zoptymalizowanych kolekcji wielowątkowych.

Uczestnik szkolenia C# dla początkujących. Programowanie asynchroniczne i równoległe zdobędzie wiedzę i umiejętności na poziomie podstawowym. Oznacza to, że będzie w stanie pisać proste rozwiązania asynchroniczne i wielowątkowe i opanuje teorię dotyczącą problemów, które z dużym prawdopodobieństwem napotka na swojej drodze, a tym samym znajdzie inspiracje do tego, jak można je rozwiązywać.

By usprawnić działanie aplikacji...

Ambicją niemal każdego programisty jest to, by napisana przez niego aplikacja stała się popularna — by była użyteczna, rozwiązywała prawdziwe problemy i by użytkownicy chcieli z niej korzystać. Niestety, im popularniejsze staje się dane oprogramowanie, tym częściej się zawiesza... Kto jest winien? Oczywiście — programista, który nie potrafił napisać odpowiednio sprawnego kodu! Dlatego podczas pracy nad kolejnym projektem warto zawczasu pomyśleć o kodzie skalowalnym, czyli takim, w którym poszczególne operacje będą mogły być wykonywane równolegle. Rzecz jasna nigdy nie będzie to dotyczyło aplikacji jako całości — programista musi wiedzieć, które obliczenia na sobie bazują, a które są od siebie niezależne. Trzeba precyzyjnie określić, które części programu mogą korzystać z tych samych zasobów, inaczej będą się one wzajemnie blokować i aplikacja się zawiesi. Dziś prawie każdy programista .NET (i nie tylko!) spotyka się na co dzień z zagadnieniami asynchroniczności i równoległości obliczeń. Wiedza ta powoli staje się obowiązkowa na rynku pracy; podczas rozmów kwalifikacyjnych często pojawiają się pytania o tematy poruszane w tym kursie — zainwestowany w niego czas z pewnością nie będzie stracony!

Sześć rozdziałów, czterdzieści pięć lekcji

Trwających w sumie niemal sześć godzin — tak proponowany przez nas kurs wygląda od strony organizacyjnej. Jeśli chodzi o poruszane w nim zagadnienia, zaczniemy od teorii dotyczącej zagadnienia SynchronizationContext — dowiemy się, co to jest. Następnie przejdziemy do zajęć praktycznych, czyli tego, jak uruchamiać obliczenia w nowym wątku, jak korzystać z tasków (Task Parallel Library) oraz puli wątków. W dalszej kolejności będziemy synchronizować dostęp do interfejsu użytkownika (WinForms, WPF), zapoznamy się z pętlą zdarzeń i uruchomimy kod asynchroniczny (Async/await). Dowiemy się, jak pracować ze starszymi modelami asynchronicznymi. Będziemy asynchronicznie pracować z bazą danych i synchronizować kolejność wykonywanych działań. Poznamy sposoby na długo trwające zadania. Nauczymy się, co to jest deadlock, będziemy pisać kod obliczający zadania równoległe, synchronizować zasoby między wątkami i procesami, przyspieszymy też synchronizację aplikacji wielowątkowych. Na koniec dowiemy się, jakie kolekcje wbudowane można wykorzystać do prostszej pracy z kodem równoległym.

What You Will Learn!

  • nauczysz się programowania asynchronicznego;
  • przyjrzysz się mechanizmom pozwalającym dokonywać równoległych obliczeń na wielu wątkach
  • dowiesz się, jak synchronizować dostęp do zasobów
  • poznasz sposoby na korzystanie z wbudowanych i zoptymalizowanych kolekcji wielowątkowych

Who Should Attend!

  • Dla osób, które chcą nauczyć się programowania w C#