انتقل إلى المحتوى
الوحدة 7

التزامن

اكتب C++ الصحيح والفعال متعدد الخيوط - الخيوط والمزامنة والذرات والخوارزميات المتوازية.

المواضيع والتزامن

  1. std::thread، std::jthread وإدارة المواضيع

    تعلم كيفية إنشاء وإدارة سلاسل الرسائل باستخدام std::thread وstd::jthread الخاص بـ C++20. فهم الانضمام مقابل الفصل، والإلغاء التعاوني باستخدام رموز الإيقاف، والتخزين المحلي لسلسلة الرسائل، ومعالجة الاستثناءات عبر حدود سلسلة المحادثات.

  2. كائنات المزامنة والأقفال والأقسام الحرجة

    أساسيات المزامنة الرئيسية: mutex وlock_guard وUnique_lock وscoped_lock وshared_mutex. تعلم كيفية حماية البيانات المشتركة، ومنع حالات التوقف التام، وفهم الفرق بين سباقات البيانات وظروف السباق.

  3. متغيرات الحالة والمنتج والمستهلك

    استخدم متغيرات الحالة لتنسيق الخيوط بكفاءة. أنشئ قائمة انتظار آمنة للمنتج والمستهلك، وتعامل مع عمليات التنبيه الزائفة، وتجنب مشكلة التنبيه المفقودة.

التزامن والذرات والتوازي

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

    استخدم تجريدات التزامن ذات المستوى الأعلى: قم بتشغيل المهام غير المتزامنة باستخدام std::async، واسترجاع النتائج باستخدام std::future، وقم بتعيين القيم أو الاستثناءات يدويًا باستخدام std::promise.

  2. العمليات الذرية وترتيب الذاكرة

    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. الخوارزميات المتوازية وسياسات التنفيذ

    استفد من C++17 الموازي STL لموازاة الفرز والتحويل والتخفيض مع سياسات التنفيذ. فهم متى يساعد التوازي، وقانون أمدال، والتصميم العملي لتجمع الخيوط.