دلفي & threads مفاهيم و تطبيقات .
#12
بسم الله الرحمان الرحيم

- لإنشاء thread توفر دلفي صنف TThread لتحقيق ذلك , دون اللجوء الى WinApi , تعرض عدة خصائص
لتسهيل التعامل مع الـ Thread , تتمثل في :

Create/Destroy: كـ Constructor /Destructor .

Execute: يحتوى على الكود الذي سينفذه الثريد , كما يجب التحقق بصفة دورية الخاصية Terminted , لأنه في حالة إقاف عمل الثريد
بواسطة الخاصية Terminate , يجب علينا إيقاف التنفيذ أو معالجة الكود الذي تنفذه الخاصية Execute .

Synchronize: هذه الخاصية لها باراماتر وحيد , يحتوي على إسم إجراء/دالة معرفة في وحدة البرنامج , تستخدم لتجنب
التداخلات التي يمكن أن تحدث في حال وجود أكثر من thread شغال في آن واحد , أو عدة إجراءات/دوال من VCLs كلها تتعامل
مع متغيرات عامة , قابلة للتغير من أي قسم من أقسام البرنامج .
- في حالة إستخدامنا لأكثر من Synchronize ستكون نسبة تعرضنا لحالة توقف تام للبرنامج كبيرة جدا .
- الجدول التالي يوضح فكرة التداخل في حالة أكثر من ثريد شغال يستخدمان نفس المصادر (متغيرات عامة) :

[صورة: 56555.gif]

- يجب أن يكون هناك تزامن في تنفيذ التعليمات بين الثريد X,Y و إلا سيحدث تداخل أثناء معالجة تعليمات كليهما , مثلا التعليمة رقم 3
للثريد X تقوم بفتح الملف F للقراءة فقط , و التعليمة رقم 2 للثريد Y تقوم بالكتابة في F , هناك طرق لتفادي هذه المشكلة كإستخدام الصنف
TCriticalSection الذي يمنع الولوج لقسم معين من الكود (الدي نريد حمايته) و حجبه عن الـ Threads الأخرى ,
أيضا هناك دوال Apiتقوم بنفس الدور (InitializeCriticalSection, LeaveCriticalSection...إلخ) .

WaitFor: لعمل الـ Switch بين threads , مثال لدينا ثريد X و ثريد Y , X ينتظر الـ WaitFor الخاصة بـ Y ليبدأ العمل و هكذا ,
يجب مراعات الـ Synchronize الخاصة بـ X&Y , لانه أي خلل منطقي سيوقف البرنامج حالا ,
البديل بإستعمال دوال Api بما يسمى بـ Wait Functions كـ (WaitForSingleObject, WaitForMultipleObjects ....إلخ) .

Terminate/Suspend/Resum: واضحة من إسم الخاصية , إيقاف الثريد نهائيا , تعطيل الثريد (إيقاف لحظي) , متابعة عمل الثريد أين تم تعطيله .

التطبيق الثالث :

- التحكم في 3 ثريد , A,B&C مع إستخدام TCriticalSection لحماية المتغير Gvar , كما يعد خلاصة كل ما سبق !.

[صورة: 56521.gif]

بالتوفيق ,,


الملفات المرفقة
.rar   MultiThread.rar (الحجم : 17.05 ك ب / التحميلات : 136)
I'M Fly Like A G6

الرد


الردود في هذا الموضوع
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 11-03-2010, 03:16 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة mohfa - 11-03-2010, 05:27 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 11-03-2010, 05:47 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة mohfa - 11-03-2010, 06:04 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة paix144 - 11-03-2010, 09:35 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة mohfa - 12-03-2010, 10:26 AM
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 12-03-2010, 11:15 AM
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 12-03-2010, 02:55 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة mohfa - 12-03-2010, 07:17 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 14-03-2010, 03:54 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة mohfa - 14-03-2010, 05:58 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة paix144 - 15-03-2010, 09:12 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 25-03-2010, 06:18 PM
دلفي & threads مفاهيم و تطبيقات . - بواسطة TF6M - 26-03-2010, 02:25 AM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم