"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو Mutex وكيف يعمل في البيئات متعددة الخيوط؟

ما هو Mutex وكيف يعمل في البيئات متعددة الخيوط؟

تم النشر بتاريخ 2024-11-18
تصفح:227

What is a Mutex and How Does it Work in Multithreaded Environments?

مثال وشرح لكائن المزامنة

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

بناء جملة Mutex

يشير بناء جملة pthread_mutex_lock(&mutex1) إلى أن كائن المزامنة (mutex) يتم قفل نفسه. ومع ذلك، ليس كائن المزامنة (mutex) هو الذي يتم قفله، بل منطقة التعليمات البرمجية المحمية به. هذا يمنع سلاسل الرسائل الأخرى من الوصول إلى الكود أثناء تنفيذه بواسطة مؤشر الترابط الحالي.

استخدام Mutex وقفل الإسناد

تحدد الخيوط حالة قفل الكود من خلال المراقبة أسوار الذاكرة التي يتم إنشاؤها عند الحصول على كائن المزامنة (mutex) وإصداره. تضمن أسوار الذاكرة أن التغييرات التي يتم إجراؤها على الذاكرة بواسطة مؤشر ترابط واحد تكون مرئية لمؤشرات الترابط الأخرى في الوقت المناسب.

الأقسام الهامة

الأقسام الهامة ليست مثل كائنات المزامنة. وهي متوفرة فقط في نظام التشغيل Windows وتشير إلى مناطق التعليمات البرمجية المحمية بواسطة كائنات المزامنة. الأقسام الهامة نفسها لا توفر التحكم في الوصول المتزامن.

أبسط مثال على كائن المزامنة

يوضح الكود التالي الاستخدام الأساسي لكائن المزامنة:

#include #تشمل #تشمل ستد::موتكس م؛ كثافة العمليات ط = 0؛ باطل makeACallFromPhoneBooth() { m.lock(); std::cout

#include 
#include 
#include 

std::mutex m;
int i = 0;

void makeACallFromPhoneBooth() {
    m.lock();
    std::cout  تشبيه Mutex 

للمساعدة في تصور المفهوم، فكر في كشك الهاتف حيث يحاول العديد من الأشخاص إجراء مكالمات. يمثل مقبض الباب كائن المزامنة (mutex). فقط الشخص الذي يحمل مقبض الباب (كائن المزامنة المقفل) يمكنه الوصول إلى الهاتف (تنفيذ الرمز المحمي). بمجرد تحرير مقبض الباب (فتح كائن المزامنة)، يمكن لشخص آخر الحصول عليه.

من خلال فهم مفهوم كائنات المزامنة واستخدامها بشكل فعال، يمكن للمطورين ضمان الوصول إلى الموارد المشتركة بطريقة آمنة ومتزامنة، مما يمنع تلف البيانات وظروف السباق في البيئات متعددة الخيوط.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3