تأمين لوصول فردي

SpinLockهو بنية ذات المستوى المنخفض، استثناء صناديق مزامنة الأولية التي يدور أثناء انتظار إلى اكتساب تأمين. تشغيل أجهزة الكمبيوتر multicore، بينما يتم توقع أوقات الانتظار قصير ومتى منافسة هو SpinLockيمكن تنفيذها بشكل أفضل من الأنواع الأخرى من " الحد الأدنى، التأمين. على الرغم من ذلك، نوصي أن تقوم استخدم SpinLockفقط عند تحديد بإنشاء تشكيل جانبي التي System.Threading.Monitorأسلوب أو System.Threading.Interlockedملحوظ هو الأسلوب بإبطاء أداء البرنامج الخاص بك.

SpinLockقد العائد شريحة الوقت مؤشر ترابط حتى لو أنه لم يتم اكتسب قفل. يظهر هذا إلى تجنب inversion مؤشر ترابط ذات أولوية، و إلى collecإلىr البيانات المهملة تمكين إلى جعل التقدم. عندما تقوم استخدم SpinLock، تأكد من أنه لا يوجد مؤشر ترابط يتسع القفل لأكثر من فترة زمنية قصيرة جداً، وأنه لا يوجد مؤشر الترابط بمنع بينما يحتفظ قفل.

لأن قفل لوصول فردي هو نوع القيمة، يجب أن بوضوح تمريرها حسب المرجع إذا كنت ترغب في وجود نسختين للإشارة إلى قفل نفسه.

لمزيد من المعلومات حول كيفية إلى تستخدم هذا النوع، راجع System.Threading.SpinLock. على سبيل المثال ، راجع كيفية القيام بما يلي: استخدام المزامنة منخفض-المستوى تأمين لوصول فردي.

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

راجع أيضًا:

موارد أخرى

ترابط الكائنات و الميزات