Μετάβαση στο περιεχόμενο
Ενότητα 7

Concurrency

Γράψτε σωστά, αποτελεσματικά πολυνηματικά C++ — νήματα, συγχρονισμός, ατομικά και παράλληλοι αλγόριθμοι.

Threads & Synchronization

  1. std::thread, std::jthread & Thread Management

    Learn to create and manage threads with std::thread and C++20's std::jthread. Understand join vs detach, cooperative cancellation with stop tokens, thread-local storage, and exception handling across thread boundaries.

  2. Mutexes, Locks & Critical Sections

    Master synchronization primitives: mutex, lock_guard, unique_lock, scoped_lock, shared_mutex. Learn to protect shared data, prevent deadlocks, and understand the difference between data races and race conditions.

  3. Μεταβλητές Κατάστασης & Παραγωγός-Καταναλωτής

    Χρησιμοποιήστε μεταβλητές συνθήκης για να συντονίσετε αποτελεσματικά τα νήματα. Δημιουργήστε μια ασφαλή ουρά παραγωγού-καταναλωτή, χειριστείτε τις ψευδείς αφυπνίσεις και αποφύγετε το χαμένο πρόβλημα αφύπνισης.

Async, Atomics & Parallelism

  1. std::async, std::future & std::promise

    Χρησιμοποιήστε αφαιρέσεις συγχρονισμού υψηλότερου επιπέδου: εκκινήστε ασύγχρονες εργασίες με το std::async, ανακτήστε αποτελέσματα με το std::future και ορίστε μη αυτόματα τιμές ή εξαιρέσεις με το std::promise.

  2. Atomic Operations & Memory Ordering

    Understand lock-free programming with std::atomic. Master memory orderings (relaxed, acquire, release, seq_cst), implement a spinlock with atomic_flag, and learn the compare-and-swap (CAS) pattern.

  3. Παράλληλοι αλγόριθμοι & πολιτικές εκτέλεσης

    Αξιοποιήστε το παράλληλο STL του C++17 για να παραλληλίσετε την ταξινόμηση, τον μετασχηματισμό και τη μείωση με τις πολιτικές εκτέλεσης. Κατανοήστε πότε βοηθά ο παραλληλισμός, ο νόμος του Amdahl και ο πρακτικός σχεδιασμός πισίνας νημάτων.