
كما لاحظت بالفعل ، تطور شكل الندوة واتخذ شكلًا جديدًا: كل ندوة تالية أصبحت الآن مخصصة بالكامل لموضوع ما. تم تخصيص الخامس لموضوع جمع القمامة ، وفي 10 ساعات كشفت كل ما هو ممكن ، وترك أسئلة خاصة تماما وراء الأقواس. وكان تتويجه تقريرا عن التطبيق العملي (سؤال يهم الجميع - "لماذا تعرف كل هذا؟")
السؤال الثاني ، الذي أعتقد أن الجميع يريد أن يعرفوه ، لكن كقاعدة عامة ، لا يوجد وقت لذلك ، هو مسألة العمل في كود متعدد الخيوط ومسألة تخطيط ودعم بنيته. هذه الأسئلة معقدة للغاية ومخيفة وغالباً ما تكون مثيرة للاشمئزاز بشكل عام. وهذا هو بالضبط السبب وراء عدم تجاوز المطور العادي لأبسط عمليات المزامنة. ولكن هناك الكثير من الأشياء المثيرة للاهتمام حول :)
منذ وقت ليس ببعيد ، فهمت حقيقة واحدة تبدو بسيطة: لكي نفهم كيف تعمل أي تجريدات من المستوى الأعلى ، تحتاج إلى فهم كيفية عمل التجريدات ذات المستوى الأدنى. بمعنى آخر ، لفهم كيفية التعامل مع الشفرة متعددة الخيوط على مستوى المزامنة / الانتظار ، تحتاج إلى معرفة بدائل التزامن والأساسيات الأخرى للرمز متعدد الخيوط في .NET على الأقل. والأفضل من ذلك - هو جزء لا بأس به من مستوى نظام التشغيل. بعد ذلك ، ستصبح معظم التجريدات عالية المستوى واضحة تلقائيًا.
في الندوة الجديدة ، التي لا تتعلق هذه المرة بمنصة .NET فقط ، كما كانت من قبل ، ولكنها تغطي أساسًا أي منصة (بعد كل شيء ، تعمل الشفرة متعددة مؤشرات الترابط على أساس التجريدات ذات المستوى الأدنى) ، سنكشف عن هذا الموضوع بأكثر التفاصيل:
خطة ورشة العمل
الأساسيات
بادئ ذي بدء ، سننظر في الأساس: كل شيء يعود إلى نظام التشغيل والمعالج. بعد كل شيء ، أي ميكانيكا المستوى الأعلى تعمل على أساس قواعد أقل. سيشمل ذلك أساسيات بنية المعالج وأولويات المزامنة وواجهة برمجة التطبيقات لنظام التشغيل Windows و Linux. هل تعلم أن هناك عدة أنواع من العمليات وحدها؟
BCL ، الجدولة ، مؤشر ترابط السكان المحليين ، STA / MTA ...
بعد فحص هذه التجريدات وفحص قواعد العمل معهم ، سنركز على التجريدات الأساسية للنظام الأساسي نفسه: BCL ، ترابط السكان المحليين ، تجمعات الخيوط ، والأساسيات الأخرى. هذه التجريدات موجودة في كل مكان ، لكن الأمثلة ستكون خاصة بالنظام الأساسي .NET. سوف نرى العلاقة مع نظام التشغيل ، وأدائها ، وكذلك قابلية التطبيق في المواقف المختلفة. أخيرًا ، سوف نفهم العديد من المشكلات التي لم يتم الوصول إليها: سياقات المزامنة ، STA / MTA ، كيف يعمل مؤشر ترابط السكان المحليين ، وأكثر من ذلك بكثير.
مع كل تجريد جديد ، بالإضافة إلى حقيقة أنه سيتم إخبار كل شيء جنبًا إلى جنب: في يوم من الأيام ، ستبدأ في ربط كل المعرفة ببعضها البعض ، وسوف ننتقل بسلاسة إلى آليات متعددة بمستوى أعلى: المجدول ، الخلفية ، نماذج تطوير الأكواد المتعددة الخيوط.
خوارزميات خالية من القفل
طوال الطريق إلى المزامنة / الانتظار. وفي النهاية ، سننظر في خوارزميات multithreading الأكثر تقدما. سنقوم بتحليل زوج من الخوارزميات الخالية من القفل حتى يتمكن كل واحد منكم من إنشاءها بنفسك. وبعد ذلك سنتعلم جعل متطلبات لتطوير منطقتنا.
PLINQ / متزامن تنتظر
علاوة على ذلك ، بعد استيعاب المعرفة الأساسية ، سنبدأ في دراسة المكتبات ذات المستويات العالية من التجريد: من PLINQ إلى المزامنة / الانتظار ، وتحليل ميزات العمل مع كل منها. أعني هنا أنك على دراية تقريبًا بالمكتبات نفسها وسنتعمق في كل منها على مستوى أكثر قليلاً من المتشددين.
بالطبع ، لن نتمكن من الكشف عن موضوع التزامن في يوم واحد: هذا الموضوع واسع للغاية ومتعدد الأوجه. وهذا هو السبب في أن CLRium # 6 سيستمر لمدة يومين.
تفاصيل الاتصال