سؤال

لدي بنية بيانات يمكن تصنيف عملياتها كعمليات للقراءة (مثل البحث) وكتابة العمليات (مثل الإدراج والإزالة). يجب مزامنة هذه العمليات بحيث:

  • قراءة العمليات لا يمكن تنفيذها أثناء تنفيذ عملية الكتابة (ما لم يكن في نفس الترخيص)، ومع ذلك، يمكن تنفيذ عمليات القراءة بشكل متزامن فيما يتعلق بعمليات القراءة الأخرى.
  • لا يمكن تنفيذ عمليات الكتابة أثناء تنفيذ عمليات القراءة أو الكتابة (ما لم يكن في نفس الخيط).

كيف يمكن تنفيذ هذا النوع من المزامنة؟

النظام الأساسي هو WIN-API، وبالتالي فإن كائنات مزامنة API والوظائف المتشابكة هي كتل البناء الأساسية.

هل كانت مفيدة؟

المحلول

التنفيذ الموصى به من Microsoft لقفل القارئ / الكاتب هنا (عليك التمرير قليلا، إلى أقفال القارئ / الكاتب "القارئ"):

http://msdn.microsoft.com/en-us/library/ms810427.aspx.

للإشارة، لأولئك الذين لديهم نفس السؤال ولكن الذين لديهم ترف .NET:

http://msdn.microsoft.com/en-us/library/system.threading.readerwirecerlock.aspx.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top