"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يمكن لـ STD :: shared_ptr ضمان سلامة مؤشر ترابط الكائن؟

هل يمكن لـ STD :: shared_ptr ضمان سلامة مؤشر ترابط الكائن؟

نشر في 2025-04-15
تصفح:858

Is std::shared_ptr Enough to Ensure Thread Safety for Your Objects?

ويوفر حساب مرجع آمن مؤشر ترابط ويضمن أن مؤشر ترابط واحد فقط ينفذ عملية الحذف على كائن مشترك. ومع ذلك ، من الأهمية بمكان أن نلاحظ أن shared_ptr نفسها لا تضمن سلامة مؤشر الترابط للكائن الذي يحتفظ به. إنه يضمن تتبع ملكية كائن ما بدقة ، بغض النظر عن عدد مؤشرات الترابط التي تصل إليه. هذا يزيل خطر تعلق المؤشرات ويضمن حذف الكائن عند تدمير آخر مشاركة _ptr إلى ذلك. عندما يصل عدد المرجع لـ shared_ptr إلى الصفر ، يتم حذف الكائن. هذا يضمن عدم وجود مؤشرات ترابط متعددة يحاول حذف نفس الكائن بشكل متزامن ، ومنع السلوك غير المحدد. إذا لم يتم تنفيذ الكائن نفسه ليكون آمنًا لخيط الخيط ، فقد يؤدي الوصول المتزامن من مؤشرات ترابط متعددة إلى ظروف سباق أو مشكلات أخرى. shared_ptr b (a) ، c (a) ، d (a) ؛ D.Reset (جديد A (10)) ؛ إعادة تعيين shared_ptr d سوف تحل محل المثيل الموجود لـ A بماء جديد. ومع ذلك ، لن يكون هذا التغيير مرئيًا فقط للموضوع IV الذي يحتفظ بـ shared_ptr d. ستستمر مؤشرات الترابط التي تحتفظ بـ Servent_ptrs A و B و C في الإشارة إلى المثيل الأصلي لـ A. هذا يوضح أن إعادة تعيين shared_ptr () لا يؤثر على رؤية الكائن عبر مؤشرات الترابط.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3