Sökresultat för

Uppdaterad kurs om Modern C++ threads

2 minuter i lästid
Jens Riboe
Jens Riboe
Senior/Expert Software Developer
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 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