دورة تعلم رست (Rust) جدول المحتويات

المشاركة عبر الخيوط (Sharing Across Threads)

Mutex عبارة عن هيكل بيانات في شكل حاوية (container data structure) يتم الاحتفاظ به عادةً بواسطة مؤشرات ذكية تستوعب البيانات وتتيح لنا استعارة مراجع قابلة للتغيير وغير قابلة للتغيير (mutable and immutable references) للبيانات الموجودة بداخلها. وهو يمنع إساءة استخدام الاستعارة (borrowing) من خلال جعل نظام التشغيل يقيد حق الوصول للبيانات إلا لخيط وحدة معالجة مركزية (one CPU thread) واحد ، مما يؤدي إلى منع الخيوط (threads) الأخرى من الوصول إلى تلك البيانات حتى ينتهي الخيط الأصلي ذو الإستعارة المقفلة (locked borrow).

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

يوجد مؤشر ذكي خاص Arc وهو مطابق لـ Rc باستثناء أنه يستخدم زيادة عن طريق خيط آمن (thread-safe) عند عد المراجع. غالبًا ما يتم استخدامه للحصول على العديد من المراجع إلى نفس Mutex.