Czas trwania
2-3 dni
Abstrakt
Szkolenie jest poświęcone tematyce programowania wielowątkowego, podczas którego, uczestnicy zostaną zaznajomieni z tematyką i problemami tworzenia kodu wykonującego się równolegle.
Zagadnienia
| Architektura komputera |
| Architektura pamięci i CPU |
| Pamięć virtualna i pamięć fizyczna |
| Cache różnego poziomy i ich oddziaływania na program współbieżny |
| “Dziwne” zachowania kodu wykonywanego równolegle |
| Programowanie wspołbieżne |
| Działanie systemu Windows |
| Procesy |
| Wątki |
| Scheduler zadań |
| Rodzaje obciążeń – podział i przykłady |
| IO |
| CPU |
| Bazowe typy .Neta wspierające programowanie współbieżne |
| Poola wątków i jej aplikacje |
| Synchronizacja między wątkami |
| Mutex i lock |
| ReaderWriterLock i ReaderWriterLockSlim |
| Statyczny konstruktor i ThreadStatic |
| […] |
| Synchronizacja między procesami |
| Techniki i zagadnienia zaawansowane |
| Lock-free |
| Memory model .Neta |
| Thread Parallel Library (TPL) – rozszerzenie biblioteki .Net |
| Struktury wielowątkowe – zbiór prymitywów bezpiecznych wielowątkowo |
| […] |
| Tasks – abstrakcja pozwalająca pisać bezpieczny kod dużo szybciej |
|
Task i Task |
| Synchronizacja tasków |
| Kontynuacje |
| Klasa Parallel jako facada |
| PLINQ – rozszerzenie LINQ o przetwarzanie równoległe |
| Opcjonalnie wstęp do LINQ (czas w zależności od znajomości tematu przez grupę) |
| Kiedy używać, a kiedy nie? |
| […] |
| Wzorce równoległe |
| Pętle równoległe |
| Fork/Join |
| Producer/Consumer |
| Aggregacja równoległa |
| Algorytm MapReduce |
| Lazy-loading |
| Współdzielenie stanu i problemy z tego wynikające |
| Interfejs Użytkownika |
| Jego budowa i wymagania dotyczące wątków |
| Asynchroniczność i marshaling do UI |
| Asynchroniczne controllery w ASP.Net MVC |
| Jak zrobić prosty chat przy użyciu long pooling? |
| Programowanie aspekty a UI |
| Testowanie kodu równoległego |
| Co da się wytestować, a czego nie? |
| Reactive Extensions (Rx) – krótki wstęp |
| Programowanie reaktywne |
| Model push vs pull |
| Async i await |
| Wzorzec Asynchronous Programming Model – APM |
| Event-based Asynchronous Pattern – EAP |
| Async i await – rozszerzenie C# 4.5 pozwalające na pisanie asynchronicznych metod |
| Iterator jako zastępnik w poprzednich wersjach .Neta |
