الأحد، 31 مارس 2013

سلسلة التعليمات Thread

سلسلة التعليمات thread في جافا تمثل خيط التنفيذ في البرنامج. في علوم الحاسوب، سلسلة تعليمات التنفيذ هي أصغر تسلسل من التعليمات المبرمجة التي يمكن إدارتها بشكل مستقل عن طريق الجدولة الخاصة بنظام التشغيل. في معظم الحالات، تَرِدْ سلسلة التعليمات  في داخل العملية process .  إن آلة جافا الافتراضية تسمح بتنفيذ سلاسل التعليمات المتعددة بحيث تشتغل بشكل متزامن. كل سلسلة تعليمات يطبق عليها ترتيب الأولوية. سلاسل التعليمات ذات أولوية أعلى يتم تنفيذها قبل سلاسل التعليمات ذات أولوية أدنى. يمكن لكل سلسلة تعليمات أن تسجل على اساس ديمون Daemon. عند تشغيل تعليمات البرمجية لسلسلة تعليمات لتقوم بإنشاء كائن سلسلة التعليمات جديد new Thread object ، هذه السلسلة للتعليمات الجديدة يُحَدَدْ لها في البداية أولوية تساوي الأولوية الخاصة بسلسلة التعليمات التي قامت بإنشائها ، و إذا كانت سلسلة التعليمات التي قامت بعملية الإنشاء  لها أولوية بصفة ديمون فسيكون لسلسلة التعليمات الجديدة نفس الأولوية وهي ديمون. وبهذا فإن سلسلة التعليمات لا تستطيع أن تحصل على صفة الأولوية ديمون إلا إذا كانت سلسلة التعليمات التي قامت بإنشائها لها صفة الأولوية ديمون.

Thread = سلسلة التعليمات أو مؤشر ترابط أو خيط
Multiple threads    = سلاسل التعليمات المتعددة
 = Process العملية أو المعالجة
Daemon = ديمون




سلسلة التعليمات ديمون تمثل خدمة لسلاسل التعليمات الأخرى. الديمون هو خاص فقط لآلة جافا الافتراضية نفسها ليس للعالم الخارجي. لهذا فقط توجد سلاسل التعلمات ديمون فليس لديهم إستخدام آخر. سلسلة التعليمات ديمون تعتمد على دورة حياة سلسلة تعليمات الأم، يعني إذا إنتهت سلسلة التعليمات الأم فإن سلسلة التعليمات الإبن تنتهي أيضا، في حين أن سلسلة التعليمات التي تم إنشاؤها من طرف المستخدم لا تعتمد على دورة حياة سلسلة التعليمات الأم parent thread.
في جافا لا يمكن للمستخدم تكوين سلسلة التعليمات ديمون، إلا أنه من الممكن تحويل سلسلة تعليمات أُنْشِأت من طرف مستخدم إلى سلسلة تعليمات ديمون بإستخدام الطريقة  setDaemon، لذلك لا يمكن أن يتم إنشاء سلسلة التعليمات دايمون إلا عن طريق آلة جافا الافتراضية. يمكنك إستعمال الطريقة isDaemon للتأكد من إذا كانت هذه السلسلة للتعليمات  هي سلسلة تعليمات ديمون Daemon أم لا.






هناك طريقتان لإنشاء تنفيذ لسلسلة تعليمات جديدة. واحد هو أن تعلن الفئة على أساس فئة فرعية من الفئة thread. هذه الفئة الفرعية عليها أن تقوم بتعويض الطريقة run  للفئة thread. يمكن تحديد مثيل لهذه الفئة و تشغيله.