14-10-12, 05:12 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
تعرف نظم التشغيل الحديثة بأنها multitasking systems وهو ما يعني امكانية تنفيذ اكثر من مهمة في نفس الوقت ، لذا تجد أن بامكانك تشغيل عدة برامج في نفس الوقت .
برامج .net من هذا النوع افتراضياً ، لكنك تلاحظ في بعض البرامج ان البرنامج الواحد قادر على تنفيذ اكثر من عملية في نفس الوقت دون أن يكون لهما تأثير متعارض ، هذا ما يعرف باسم multithreading .
لذا تجد ان برنامج الماسنجر يتيح لك ارسال ملفات والحديث واستخدام الكاميرا والتحدث مع اكثر من شخص بنفس الوقت ، وهو ما لم يكن الماسنجر قادراً عليه لو لم يكن يفصل هذه المهام داخل البرنامج الواحد عن بعضها ، هذا هو مضمون درسنا الحالي .
جميع الأوامر التي سنتعامل معها هنا تقع تحت نطاق الأسماء System.Threading ، لذا قم باستيراده أولاً .
العناصر الاساسية داخل مجال الاسماء هذا هي :
Thread : لتعريف Thread جديد والتعامل معه .
ThreadPool : مجموعة من ال Threads يمكن لها التعامل فيما بينها .
ThreadState : Enum يحتوي على عدة حالات لأي Thread .
ThreadStart : بدء التنفيذ في Thread .
ThreadPriority : تحديد اولوية هذا ال Thread .
بالاضافة إلى :
Semaphore
Mutex
Monitor
وهي في الاساس الجوريزمات تستخدم لعمليات التزامن synchronization بحيث لا يسمح لأكثر من Thread بالوصول إلى نفس المصادر في نفس الوقت ، لمزيد من التعرف على هذه الالجوريزمات يمكن البدء من هنا :
http://en.wikipedia.org/wiki/Semaphore_(programming)
http://en.wikipedia.org/wiki/Mutual_exclusion
http://en.wikipedia.org/wiki/Monitor_(synchronization)
نواصل في الدرس القادم إن شاء الله .