कंकरेंसी (Concurrency)
सही और कुशल मल्टीथ्रेडेड C++ लिखना सीखें — थ्रेड, सिंक्रोनाइज़ेशन, एटॉमिक और पैरेलल एल्गोरिदम।
थ्रेड और सिंक्रोनाइज़ेशन (Threads & Synchronization)
std::thread, std::jthread और थ्रेड मैनेजमेंट
std::thread और C++20 के std::jthread से थ्रेड बनाना और उन्हें मैनेज करना सीखें। join बनाम detach, स्टॉप टोकन के साथ सहयोगी कैंसलेशन (cooperative cancellation), थ्रेड-लोकल स्टोरेज और थ्रेड की सीमाओं के पार एक्सेप्शन हैंडलिंग को समझें।
म्यूटेक्स, लॉक और क्रिटिकल सेक्शन
सिंक्रोनाइज़ेशन प्रिमिटिव में महारत हासिल करें: mutex, lock_guard, unique_lock, scoped_lock, shared_mutex। साझा डेटा की सुरक्षा करना, डेडलॉक रोकना, और डेटा रेस तथा रेस कंडीशन के बीच का अंतर समझना सीखें।
कंडीशन वेरिएबल और प्रोड्यूसर-कंज़्यूमर
थ्रेड के बीच कुशलता से तालमेल बिठाने के लिए कंडीशन वेरिएबल का उपयोग करें। थ्रेड-सेफ़ प्रोड्यूसर-कंज़्यूमर क्यू बनाएँ, स्प्यूरियस वेकअप सँभालें, और लॉस्ट वेकअप की समस्या से बचें।
Async, एटॉमिक और पैरेललिज़्म (Async, Atomics & Parallelism)
std::async, std::future और std::promise
उच्च-स्तरीय कंकरेंसी एब्स्ट्रैक्शन का उपयोग करें: std::async से असिंक्रोनस टास्क लॉन्च करें, std::future से नतीजे पाएँ, और std::promise से वैल्यू या एक्सेप्शन मैन्युअली सेट करें।
एटॉमिक ऑपरेशन और मेमोरी ऑर्डरिंग
std::atomic के साथ लॉक-फ़्री प्रोग्रामिंग को समझें। मेमोरी ऑर्डरिंग (relaxed, acquire, release, seq_cst) में महारत हासिल करें, atomic_flag से स्पिनलॉक बनाएँ, और compare-and-swap (CAS) पैटर्न सीखें।
पैरेलल एल्गोरिदम और एक्ज़ीक्यूशन पॉलिसी
सॉर्टिंग, ट्रांसफ़ॉर्मेशन और रिडक्शन को एक्ज़ीक्यूशन पॉलिसी के साथ पैरेलल करने के लिए C++17 पैरेलल STL का लाभ उठाएँ। समझें कि पैरेललिज़्म कब मदद करता है, Amdahl का नियम, और व्यावहारिक थ्रेड पूल डिज़ाइन।