ما هي الخوارزميات المستخدمة في Clojure و Haskell (ولغات أخرى) لـ STM؟

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

سؤال

كما أفهم ، هناك العديد من الخوارزميات المختلفة لتنفيذ ذاكرة المعاملات البرمجية (وهذا مجال بحث نشط تمامًا). أين يمكنني أن أجد (دون الحاجة إلى الغوص في رمز المصدر) والتي يتم استخدامها بلغات ومكتبات مختلفة ، وخاصة في Clojure و Haskell (GHC)؟

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

المحلول

المورد النهائي على Clojure's STM - بصرف النظر عن الكود نفسه - هو ذاكرة المعاملات البرمجية مقال لمارك فولكمان.

إنه يقدم نظرة عامة موجزة على مستوى عالٍ على STM-the-approach (مقارنةً بالمناهج الأخرى للتزامن) ، يلخص ميزات التزامن المختلفة المتاحة في Clojure ، ثم تغوص في STM Clojure ، واصفًا بالضبط ما يحدث أثناء المعاملة وفي النهاية يسير على اليمين إلى مستوى الطبقات الفردية المعنية. بالإضافة إلى تقديم الكثير من المعلومات الصعبة حول الأعمال الداخلية لآلات STM الخاصة بـ Clojure ، فإنه يحتوي على عدد كبير من الملاحظات الثاقبة المتعلقة بميزات Clojure الموجهة نحو التزامن حيث يتم استخدامها في برامج Clojure المصباح.

نقطة الدخول الفعلية لموارد Mark STM هي هذه الصفحة, ، يضم حاليًا بعض شرائح STM بالإضافة إلى رابط أحدث إصدار من مقالة STM الرئيسية.

نصائح أخرى

على مستوى عالٍ للغاية ، هناك شيء واحد مثير للاهتمام حول تنفيذ Clojure لـ STM ، هو أنه يختلف تمامًا عن جميع التطبيقات الأخرى. لقد بدا ريتش أكثر بكثير نحو قواعد البيانات الفعلية عالية الأداء في العالم الحقيقي أكثر من الأوراق الأكاديمية حول STMs الافتراضية. على سبيل المثال ، STM Clojure هو على حد علمي STM الوحيد الذي يستخدم التحكم في التزامن متعدد الإصدار (MVCC) ، وهي تقنية معروفة في عالم قاعدة البيانات (في الواقع ، لا توجد قاعدة بيانات خطيرة إلى حد كبير ، والتي لا استخدم MVCC) ولكن لا يتم مناقشته على الإطلاق في عالم STM.

نرى http://www.haskell.org/haskellwiki/Software_Transactional_Memory بالنسبة إلى Haskell (و GHC) ، و http://clojure.org/concurrent_programming ل clojure.

أعتقد أن GHC يأتي مع مكتبة STM ، وهناك بعض التقنيات لـ STM في Clojure.

للحصول على لغات أخرى ، انظر http://en.wikipedia.org/wiki/software_transactional_memory#implementations

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