ما هي بعض الموارد الجيدة لتعلم البرمجة المترابطة؟[مغلق]

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

سؤال

مع ظهور وحدات المعالجة المركزية متعددة النواة على سطح المكتب، ستصبح مهارات تعدد العمليات مصدرًا قيمًا للمبرمجين.هل يمكنك التوصية ببعض الموارد الجيدة (الكتب والبرامج التعليمية ومواقع الويب وما إلى ذلك) للمبرمج الذي يتطلع إلى التعرف على البرمجة المترابطة؟

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

المحلول

ألق نظرة على هيرب سوتر "انتهى الغداء المجاني" ثم سلسلة مقالاته عن التزامن الفعال.

نصائح أخرى

كتب جوزيف البحاري نظرة عامة جيدة على Threading في C# هنا:

http://www.albahari.com/threading/

بصراحة، لم أقرأها بنفسي أبدًا، ولكن البرمجة المتزامنة في جافا هو كتاب سمعته موصى به من قبل العديد من الأشخاص.

أنا أكتب عن تعدد مؤشرات الترابط والتزامن في C++ مدونتي.أنا أيضًا أكتب كتابًا عن التزامن في C++: التزامن C++ في العمل.

قرأت (أغلب) جافا التزامن في الممارسة العملية بواسطة بريان جويتز، وهو أمر جيد جدا.

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

الصفحة الرئيسية للمؤلف تحتوي على قائمة المقالات لقد كتب، وبعضها يتضمن أشياء ذات صلة بالخيوط.ربما تبدأ من هناك، وإذا أعجبك أسلوبه، قم بشراء الكتاب.

للحصول على دليل ومرجع رائعين للبرمجة المتزامنة في لغة C# (أو .NET بشكل عام) أوصي باستخدام MSDN ما يجب أن يعرفه كل مطور عن التطبيقات متعددة الخيوط مقال بقلم فانس موريسون على MSDN.فهو يحتوي على قدر كبير من المعلومات والتحذيرات المتعلقة بأفضل الممارسات حول تطوير مؤشرات الترابط المتعددة

أحتفظ بمدونة رابط للمقالات والمدونات والمشاريع المتزامنة على:

http://concurrency.tumblr.com

أقوم عادةً بنشر رابط أو رابطين يوميًا حول مجموعة متنوعة من المواضيع (المواضيع والممثلين والقفل والبرمجة الموازية) في مجموعة متنوعة من البيئات (Erlang وJava وScala و.NET وC++ وRuby وPython وما إلى ذلك).

إنها لغة دلفي محددة، ولكن لا يوجد سبب لعدم تطبيق المفهوم على أي لغة أخرى!

دروس متعددة الخيوط

http://www.cilk.com/multicore-e-book/

هذه نظرة عامة لطيفة على الوضع، إذا كنت تبحث عن برامج تعليمية وكتب، فقد يكون من الأفضل تحديد لغة كنقطة بداية حتى تتمكن من التلاعب ببعض التعليمات البرمجية.

توفر لغة البرمجة Erlang أسلوبًا سهل الاستخدام للبرمجة المتزامنة.لا يجوز لك مطلقًا استخدام Erlang، لكن المفاهيم قابلة للنقل إلى لغات أخرى.قد ترغب في قراءة الكتاب إرلانج البرمجة:البرمجيات لعالم متزامن .

يدعي عشاق البرمجة الوظيفية أنه ليست هناك حاجة لتعلم أي شيء جديد.ما عليك سوى استخدام لغة وظيفية خالصة، وسيقوم المترجم أو المترجم الفوري بموازاة كل شيء تلقائيًا.لذلك قد ترغب في تعلم لغة Haskell أو OCaml أو لغة وظيفية أخرى.

لا أعرف ما الذي تبحث عنه بالضبط، ولكن إذا كنت تقوم بتطوير WindowsForms، فإن منشور المدونة التالي يستحق القراءة كل دقيقة:يستدعي مؤشر ترابط WinForms UI:مراجعة متعمقة لـ In يفوك/بيجينينفوك/إنفوكريكوريد

أعتقد أن Boost.Threads هي مكتبة متزامنة رائعة لـ C++ للتعلم، خاصة إذا كنت تريد فقط البدء في كتابة تطبيقات متعددة الخيوط.الكود موجز للغاية وسهل الفهم، بالإضافة إلى أن معيار C++ التالي من المحتمل أن يتضمن مكتبة ترابط تعتمد على Boost.Threads (البرنامج التعليمي: http://www.ddj.com/cpp/184401518)

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

قدم المشاركون حلولاً بالعديد من اللغات المختلفة و نتائج الأداء يتم نشرها.لقد انتهى المشروع الأصلي الآن، وهو موجود الآن مكتشف واسع 2 أخذ العمل على.

CodingHorror لديه جيدة مقدمة إلى مكتشف واسع.

للحصول على معالجة غنية وشاملة للموضوع، مع توازن جيد بين علوم الكمبيوتر والممارسة، أوصي فن برمجة المعالجات المتعددة.هناك الكثير من الأمثلة في التعليمات البرمجية الموجهة للكائنات، أي.جافا، مع لغات أخرى منتشرة في جميع أنحاء.ذلك يعتمد فقط على الموضوع الذي يتم تناوله.ما أحبه حقًا في هذا الكتاب هو أنه يناقش كيفية تنفيذ الخوارزميات الشائعة في التصميم المتزامن.بالطبع، هناك الكثير!

بالنسبة للمفاهيم العامة ومعالجة pthreads، فأنا أحب ذلك حقًا البرمجة باستخدام خيوط POSIX.كونها المكتبة وواجهة برمجة التطبيقات (API)، فهي موجودة في لغة C.

لمطوري Windows وC#، قم بالتحقق من ذلك مدونة جو دافي.يعمل جو على المكتبات الموازية والبنية التحتية ونماذج البرمجة في قسم مطوري Microsoft.لديه كتاب قادم في نوفمبر2008 بعنوان البرمجة المتزامنة على ويندوز (رابط أمازون).

ولا تفوت أيضًا مدونة العراب:هيرب سوتر مطحنة سوتر.وله روابط لجميع مقالاته في د.مجلة دوب وأكثر من ذلك.انقر فوق له فئة التزامن.

تحتوي مواقع الشركات المصنعة لوحدة المعالجة المركزية على بعض المحتوى المثير للاهتمام:

http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel

http://software.intel.com/en-us/multi-core

تحتوي مكتبة الترابط مفتوحة المصدر من Intel أيضًا على بعض المراجع الجيدة:

http://www.threadingbuildingblocks.org/

إذا كنت تعمل مع لغة #C، فإن كتاب "C# 2008 و 2005 البرمجة المترابطة"، من تأليف جاستون سي.هيلار - باكت للنشر - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book ، سوف يساعدك.يوصى به بشدة لمبرمجي C#، لأنه يمكنك تنزيل التعليمات البرمجية بأمثلة مضحكة تستغل جهاز الكمبيوتر متعدد النواة الخاص بك.الكتاب عبارة عن دليل لطيف يحتوي على الكثير من التعليمات البرمجية للتدرب عليها.يحكي القصص بينما يشرح أصعب المفاهيم.

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