Concurrency
Γράψτε σωστά, αποτελεσματικά πολυνηματικά C++ — νήματα, συγχρονισμός, ατομικά και παράλληλοι αλγόριθμοι.
Threads & Synchronization
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.
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.
Μεταβλητές Κατάστασης & Παραγωγός-Καταναλωτής
Χρησιμοποιήστε μεταβλητές συνθήκης για να συντονίσετε αποτελεσματικά τα νήματα. Δημιουργήστε μια ασφαλή ουρά παραγωγού-καταναλωτή, χειριστείτε τις ψευδείς αφυπνίσεις και αποφύγετε το χαμένο πρόβλημα αφύπνισης.
Async, Atomics & Parallelism
std::async, std::future & std::promise
Χρησιμοποιήστε αφαιρέσεις συγχρονισμού υψηλότερου επιπέδου: εκκινήστε ασύγχρονες εργασίες με το std::async, ανακτήστε αποτελέσματα με το std::future και ορίστε μη αυτόματα τιμές ή εξαιρέσεις με το std::promise.
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.
Παράλληλοι αλγόριθμοι & πολιτικές εκτέλεσης
Αξιοποιήστε το παράλληλο STL του C++17 για να παραλληλίσετε την ταξινόμηση, τον μετασχηματισμό και τη μείωση με τις πολιτικές εκτέλεσης. Κατανοήστε πότε βοηθά ο παραλληλισμός, ο νόμος του Amdahl και ο πρακτικός σχεδιασμός πισίνας νημάτων.