قراءة / كتابة التزامن
-
23-08-2019 - |
سؤال
لدي بنية بيانات يمكن تصنيف عملياتها كعمليات للقراءة (مثل البحث) وكتابة العمليات (مثل الإدراج والإزالة). يجب مزامنة هذه العمليات بحيث:
- قراءة العمليات لا يمكن تنفيذها أثناء تنفيذ عملية الكتابة (ما لم يكن في نفس الترخيص)، ومع ذلك، يمكن تنفيذ عمليات القراءة بشكل متزامن فيما يتعلق بعمليات القراءة الأخرى.
- لا يمكن تنفيذ عمليات الكتابة أثناء تنفيذ عمليات القراءة أو الكتابة (ما لم يكن في نفس الخيط).
كيف يمكن تنفيذ هذا النوع من المزامنة؟
النظام الأساسي هو 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.
لا تنتمي إلى StackOverflow