
Uppdaterad kurs om Modern C++ threads
Kursen om trådprogrammering (threads programming) har genomgått en omfattande uppdatering. Nytt är att den tar avstamp i C++20 och std::jthread. Sedan går vi hela vägen ned till PThreads C API för att förstå hur allt fungerar.
Kursen om trådprogrammering (threads programming) har genomgått en omfattande uppdatering. Nytt är att den tar avstamp i C++20 och std::jthread
och fokuserar på att beskriva och förklara alla delar av biblioteket som handlar om trådning.
Efter att gått igenom hur du skapar, väntar på och stoppar trådar i C++20 och versionerna innan tillbaka till C++11, får du lära dig om klassiska buggar i flertrådade system och hur du förebygger att de uppstår.
Du får insikt i problemet med critical sections, race conditions och deadlock, samt hur du designar ditt program för att undvika dessa.
Vidare, så får du lära dig om hur du implementerar meddelandesändning, såväl enkelriktad som dubbelriktad, samt hur du designar en trådpool. Du får också lära dig om parallella STL algoritmer, hur du använder dem och deras begränsningar.
Sen byter vi spår och kikar på mer lågnivå-delar, såsom egen-definierad minnesallokering, vilket är nödvändigt för att implementera tråd-privata minnespooler. Du får sen lära dig om POSIX Threads C API och hur C++ klasserna är implementerade.
Slutligen, tar vi upp processer och delat minne, samt hur du implementerar system där trådar kommunicerar via meddelande-köer i delat minne.
Så här ser kapitel-indelningen ut:
-
Threads
- Introduction to Threads and Concurrency
- Creating a thread in C++20
- Cooperative Interruption
- Concurrency Problems
- The Critical Section Problem
- The Race-Condition Problem
- The Deadlock Problem
- More Synchronization
- Read-Write Locks
- Latches & Barriers
- Semaphores
- Promises & Futures
- Message Queues
- Thread-Safe Queue
- Unidirectional Message Passing
- Bidirectional Message Passing
- Thread Pools
- Misc. Library Parts
- Parallel STL Algorithms
- Atomic Variables
-
Under the Hood
- User-Defined Memory Allocation
- POSIX Threads
- Implementation of C++ Threads
- Shared Memory
- POSIX Processes
- POSIX Shared Memory