Programowanie współbieżne. Podstawy
- Opis
- Program
- Najczęściej zadawane pytania
- Recenzje
Programowanie współbieżne to technika pozwalająca programom komputerowym na wykonywanie wielu zadań jednocześnie. Współczesne oprogramowanie praktycznie nie istnieje bez współbieżności. Wyobraźmy sobie system operacyjny, który nie pozwala uruchomić więcej niż jednej aplikacji jednocześnie albo program, którego interfejs użytkownika wciąż się zawiesza oczekując na zakończenie innych operacji.
Dlatego każdy współczesny programista prędzej czy później musi zetknąć się z programowaniem wspóbieżnym. Niestety osoby, które zaczynają tworzyć aplikacje współbieżne (wielowątkowe) bez dobrego zrozumienia tego tematu popełniają błędy, które bardzo trudno znaleźć, a które skutkują nieprzewidywalnym lub niestabilnym działaniem aplikacji.
Takich błędów można łatwo unikać znając podstawowe problemy programowania współbieżnego i metody radzenia sobie z nimi. Właśnie tym metodom poświęcony jest ten kurs.
Dowiesz się z niego czym są procesy i wątki, czym grozi niewłaściwa synchronizacja wątków w programach wielowątkowych i jak korzystać z takich narzędzi jak sekcje krytyczne, muteksy i semafory do uzyskania właściwej synchronizacji.
Przykłady programistyczne w kursie są wykonywane w języku C i systemie operacyjnym Windows, ale omawiane techniki są typowe dla innych systemów operacyjnych i praktycznie każdego języka programowania obsługującego współbieżność.
Dobre zrozumienie współbieżności jest jednym z tych elementów, które odróżniają profesjonalnego programistę od osoby zajmującej się programowaniem jedynie amatorsko. Jednocześnie jest ono często uznawane za temat trudny do zrozumienia. Dzięki naszemu kursowi z łatwością postawisz pierwsze kroki w tej dziedzinie i unikniesz wielu błędów, których naprawienie może Ci zająć bardzo dużo czasu.
-
1WprowadzenieVideo lesson
-
2Instalacja narzędziVideo lesson
-
3Instalacja Visual StudioText lesson
-
4Korzystanie z GCCText lesson
-
5Instalacja MinGWVideo lesson
-
6Instalacja Visual Studio CodeText lesson
-
7Instalacja Windows SDKText lesson
-
8Gdzie znajdziesz kody źródłowe przykładów?Text lesson
-
9WprowadzenieVideo lesson
-
10Ćwiczenie: Pierwszy program wielowątkowyVideo lesson
-
11Działanie programów wielowątkowychQuiz
Ten test ma pomóc Ci sprawdzić czy prawidłowo rozumiesz jak zmienia się kolejność wątków w programach wielowątkowych. Jest to bardzo ważna wiedza, która pozwoli Ci uniknąć w przyszłości wielu niespodziewanych błędów.
-
12Konwencje w API WindowsaVideo lesson
-
13Procesy i wątkiVideo lesson
-
14Różnice między procesami, a wątkamiQuiz
Ten test pomoże Ci sprawdzić czy dobrze rozumiesz czym różnią się procesy od wątków.
-
15Ćwiczenie: Monitor zasobów WindowsaVideo lesson
-
16Jak działa stos?Video lesson
-
17Jak działa stos?Quiz
Sprawdź czy prawidłowo rozumiesz działanie stosu w programach komputerowych.
-
18Ćwiczenie: Dostępność pamięci w programach wielowątkowychVideo lesson
-
19Przełączanie kontekstuVideo lesson
-
20Przyczyny przełączenia wątków 1: przekazanie sterowania przez wątekVideo lesson
-
21Przyczyny przełączenia wątków 2: sloty czasoweVideo lesson
-
22Przyczyny przełączenia wątków 3: priorytetyVideo lesson
-
23WprowadzenieVideo lesson
-
24Ćwiczenie: dostęp do wartości zwracanej przez wątekVideo lesson
-
25Ćwiczenie: przekazywanie argumentów do nowego wątkuVideo lesson
-
26Ćwiczenie: Przekroczenie czasu oczekiwania na zakończenie wątkuVideo lesson
-
27Ćwiczenie: Wydruk opisów błędówVideo lesson
-
28Ćwiczenie: Łańcuchy znaków w API WindowsaVideo lesson
-
29Ćwiczenie: Rozmiar stosuVideo lesson
-
30WprowadzenieVideo lesson
-
31Ćwiczenie: WyścigiVideo lesson
-
32Odrobina asembleraVideo lesson
-
33Skąd biorą się wyścigi?Video lesson
-
34Ćwiczenie: Naiwna implementacja sekcji krytycznychVideo lesson
-
35Dlaczego naiwna implementacja sekcji krytycznych nie działa?Video lesson
-
36Dwa niebezpieczne podejścia do programów współbieżnychVideo lesson
-
53WprowadzenieVideo lesson
-
54Problem producenta i konsumentaVideo lesson
-
55Ćwiczenie: Producent - konsumentVideo lesson
-
56Ćwiczenie: Losowy czas produkcji danychVideo lesson
-
57Usprawnienie systemu producent - konsument za pomocą kolejkiVideo lesson
-
58Prosta implementacja kolejkiVideo lesson
-
59Jak działają semafory?Video lesson
-
60Ćwiczenie: Producent - konsument z kolejkąVideo lesson
-
61Analiza programu producent - konsumentVideo lesson
-
62Ćwiczenie: Kolejne usprawnienie programu producent - konsumentVideo lesson
