Threads
هي طريقة تمكن الكمبيوتر من تنفيذ برنامج باكثر من شكل في نفس الوقت (أي أن البرنامج يمكن تنفيذه بأكثر ن طريقه او استخدام في نفس الوقت)
بمعنى ان كلthread يقوم بتسلسل تنفيذ مختلف (على الاقل كل process تمتلك threadواحد اي يتم تنفيذها بشكل واحد)
ومن اهم مايميز Threads:
1) أنها تحافظ على موارد النظام ومايفسر ذلك هي خاصيتها في مشاركة الموارد بمعنى ان جميع threadالتابعة لprocess (برنامج نشط) تتشارك في معظم الموارد الخاصة بها مثل
Heap)dynamic allocated memory)
Static data
Code
ولكنها تمتلك مايميزها عن غير ها بمعنى ان كل thread تمتلك النsخة الخاصة بها من كل مايلي
Stack
Program counter
Stack pointer
2) عملية انشاء وإنهاء threadاسرع من عمل نسخ كاملة من process عن طريق استخدام fork()
3)عملية الاتصال بينthreads اسهل واسرع من عملية الاتصال بين process لأن threads تتشارك في نفس address space
ومن أبرز سلبيات thread :
1) أبرز السلبيات التي قد تواجهنا هي احتمالية حصول مايعرف بdead lock والتي يمكن شرحها بشكل مبسط بالمثال التالي
لوكان لدينا thread 1 و thread 2 واحتاجت thread 1 الى احد الموارد التي تمتلكها فيهذه اللحظه thread 2
بالتالي سيتم تنفيذ ايقافها الى ان تحصل على هذه الموارد ولكن في نفس اللحظة كانت thread 2 تحتاج موارد تمتلكها thread 1 ممايعني انها ستوفق تنفيذها الى ان تحصل على هذه الموارد
اي ان كلا threads ستتوقف لتنتظر الاخرى.
2)blocking
وهي توقف thread عن تنفيذ الاوامر نتيجة انتظارها system call result والتي بدورها قد تكون حدث فيها خطأ ولكنها تحتاج لوقت طويل ليعلم thread بذلك
Comments (0)
You don't have permission to comment on this page.