استبدل القسم الحرج بقفل SRW
-
29-09-2019 - |
سؤال
إذا كان التطبيق مستهدفًا على Windows Vista أو لاحقًا ، فهل يمكننا استبدال الجميع الأقسام الحرجة مع أقفال SRW؟ نظرًا لأن القسم الحرج حصري بشكل متبادل ، فالاستخدام يعادل أقفال SRW في الوضع الحصري ، أليس كذلك؟ وفقًا لـ MSDN ، يتم تحسين SRW للسرعة والمساحة. هل هناك أي عيب للقيام بذلك؟ لست متأكدًا من كيفية تنفيذ CS و SRW داخليًا بواسطة Microsoft.
شكرًا!
المحلول
انظر كتاب Joe Duffy "البرمجة المتزامنة على Windows" ، ص 289.
الإجابة المختصرة على سؤالك هي "تقريبا". هناك دلالات مع Criticed_section المكتسبة بشكل متكرر والتي تختلف عن SRWL. إذا استفاد برنامجك من هذه الخصائص للأقسام الحرجة لـ Win32 ، فلا يمكنك التبديل بالجملة إلى SRWL بسهولة. ومع ذلك ، يمكنك لف SRWL في غلاف لتوفير CS مثل الدلالات ، ولكن هناك مجموعة من التفاصيل الدقيقة في القيام بذلك ، لذلك من الأفضل أن تتمسك بـ CS إذا كنت تعتمد على هذا السلوك.
مقال كيني كير يصف القليل عن كيفية تنفيذ كلاهما داخليًا.