سؤال

الغرض

أنا أكتب مكتبة صغيرة التي قابلية قلق أكبر.وقد تم تصميمه لتحمل فقط في الغالب-مع C90 (ISO/IEC 9899:1990) البيئة...لا شيء أكثر من ذلك.مجموعة من الوظائف التي تقدمها المكتبة لجميع تعمل (قراءة/كتابة) على بنية بيانات داخلية.لقد فكرت في بعض بدائل التصميم الأخرى, ولكن لا شيء آخر يبدو ممكنا لما المكتبة في محاولة لتحقيق.

السؤال

هل هناك أي المحمولة الخوارزميات والتقنيات أو الطلاسم التي يمكن استخدامها لضمان موضوع السلامة ؟ أنا لا تشعر بالقلق مع جعل مهام إعادة الوافد.علاوة على ذلك, أنا لا تشعر بالقلق مع سرعة أو (ربما) هدر الموارد إذا الخوارزمية/تقنية/التعويذة المحمولة.من الناحية المثالية, لا تريد أن تعتمد على أي المكتبات (مثل جنو Pth) أو نظام-عمليات محددة (مثل الذرية اختبار-و-مجموعة).

لقد نظرت تعديل لامبورت المخابز الخوارزمية, ولكن أنا لا أعرف كيفية تغيير على العمل داخل وظائف يسمى من المواضيع بدلا من العمل في المواضيع نفسها.

أي مساعدة هي موضع تقدير كبير.

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

المحلول

لامبورت المخابز خوارزمية ربما العمل ؛ للأسف لا تزال هناك مشاكل عملية معها.على وجه التحديد, العديد من وحدات المعالجة المركزية تنفيذ من أجل عمليات الذاكرة:حتى لو كنت قد جمعت التعليمات البرمجية في الصحيح تماما تسلسل التعليمات, وحدة المعالجة المركزية عند تنفيذ التعليمات البرمجية الخاصة بك ، قد تقرر إعادة ترتيب الإرشادات التي تظهر على الطاير لتحقيق أداء أفضل.الطريقة الوحيدة للحصول على جميع أنحاء هذا هو استخدام الذاكرة الحواجز, التي هي محل نظام - وحدة المعالجة المركزية الخاصة.

كنت حقا لا تملك إلا خيارين هنا:إما (1) الحفاظ على المكتبة الخاصة بك موضوع غير آمنة وجعل المستخدمين على بينة من ذلك في الوثائق ، أو (2) استخدام منصة محددة مزامنة.الخيار 2 يمكن أن تكون أسهل باستخدام مكتبة أخرى أن تنفذ mutexes كبيرة متنوعة من المنصات و يوفر لك موحد مجردة واجهة.

نصائح أخرى

دون نظام التشغيل/دعم الأجهزة على الأقل ذرية CAS, لا يوجد شيء يمكنك القيام به هذه العملية.هناك هي المحمولة مكتبات مجردة مختلف المنصات في واجهة مشتركة ، على الرغم من.

http://www.gnu.org/software/pth/related.html

تقريبا جميع الأنظمة (حتى ويندوز) يمكن تشغيل libpthread هذه الأيام.

وظائف إما أن لا يكون الموضوع آمنة أو بالفطرة موضوع آمنة ، اعتمادا على كيفية كنت تريد أن ننظر في الأمر.وخيوط/تأمين الفطرة منصة محددة.حقا الأمر متروك المستخدمين من المكتبة الخاصة بك للتعامل مع خيوط القضايا.

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