إذا كانت Interlocked.Increment ذرية، فلماذا يجب أن أستخدم ++ بدلاً من ذلك؟

StackOverflow https://stackoverflow.com/questions/6098020

  •  09-09-2020
  •  | 
  •  

سؤال

أفترض أن هذه العملية الذرية أسرع من ++.لا أرى سوى المزايا لصالح Interlocked.Increment.ما هي عيوبها؟

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

المحلول

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

نصائح أخرى

الذري لا يعني أنه أسرع.في الواقع، سيكون بالتأكيد أبطأ.

في البرمجة المتزامنة ، تكون عملية (أو مجموعة من العمليات) ذرية أو خطية أو غير قابلة للتجزئة أو غير متوقعة إذا ظهرت لبقية النظام على الفور.

وهذا يعني فقط عدم وجود آثار جانبية يمكن ملاحظتها أثناء العملية.ولا يذكر أي شيء عن المدة التي تستغرقها العملية.

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