الفرق بين طريقة البدء وطريقة تشغيل في الموضوع
في مؤشر ترابط ، إذا استدعاء طريقة البدء طريقة التشغيل بدورها ، فلماذا نختار استدعاء طريقة البدء؟ أو ما هو الفرق بين استدعاء طريقة البدء وطريقة التشغيل في موضوع Java؟ هذان السؤالان هما سؤالان شائعان متعدد الخيوط على مستوى المبتدئين. عندما يبدأ مبرمج Java في تعلم مؤشرات الترابط ، فإنهم سيتعلمون أولاً أن يرثوا فئة مؤشرات الترابط ، أو تحميل طريقة التشغيل أو تنفيذ الواجهة القابلة للتشغيل ، وتنفيذ طريقة التشغيل ، ثم استدعاء طريقة البدء في مثيل مؤشر الترابط. ولكن بعد أن يتمتع ببعض الخبرة ، سيجد أن طريقة البداية ستستدعي طريقة التشغيل داخليًا من خلال النظر إلى وثائق API أو طرق أخرى ، لكن الكثير منا يعلم أنه عندما يُطلب منا خلال المقابلة ، فإننا ندرك أهمية هذا السؤال. في هذا البرنامج التعليمي Java ، سنفهم الفرق بين استدعاء طريقة البدء وطريقة التشغيل عند بدء تشغيل مؤشرات الترابط في Java
هذا المنشور هو postscript لبعض مقالاتنا المنشورة على java multithreading ، على سبيل المثال الفرق بين Runnable والخيط في Java وكيفية حل مشكلة المستهلك المنتج في Java باستخدام blockingqueue. إذا لم تكن قد قرأتها بعد ، فقد تجدها مثيرة للاهتمام ومفيدة.
الفرق بين البداية والتشغيل في موضوع Java
الفرق الرئيسي بين طرق البدء والتشغيل هو أنه عندما يستدعي البرنامج طريقة البدء ، سيتم إنشاء مؤشر ترابط جديد ، وسيتم تشغيل الكود في طريقة التشغيل على مؤشر الترابط الجديد. ومع ذلك ، عند الاتصال بطريقة التشغيل مباشرة ، لن يقوم البرنامج بإنشاء مؤشر ترابط جديد ، وسيتم تشغيل الكود داخل طريقة التشغيل على مؤشر الترابط الحالي. في معظم الحالات ، يعد استدعاء طريقة التشغيل خطأ أو خطأ. نظرًا لأن النية الأصلية للمتصل هي استدعاء طريقة البدء لبدء مؤشر ترابط جديد ، يمكن اكتشاف هذا الخطأ من خلال العديد من أدوات تغطية التعليمات البرمجية الثابتة ، مثل FingBugs. إذا كنت ترغب في تشغيل مهمة تستغرق الكثير من الوقت ، فمن الأفضل استخدام طريقة START ، وإلا فإن موضوعك الرئيسي سيكون عالقًا عند استدعاء طريقة التشغيل. هناك اختلاف آخر هو أنه بمجرد بدء تشغيل مؤشر ترابط ، لا يمكنك استدعاء طريقة البدء مرارًا وتكرارًا لكائن مؤشر الترابط. سيقوم استدعاء طريقة البدء في الموضوع الذي بدأ بالفعل بالإبلاغ عن استثناء غير قانوني ، ولكن يمكنك استدعاء طريقة التشغيل مرارًا وتكرارًا
ما يلي هو العرض التوضيحي لطريقة البدء وطريقة التشغيل
تتمثل المهمة في مؤشر الترابط في طباعة اسم مؤشر الترابط الحالي الذي تم تمريره في قيمة السلسلة.
هنا يمكننا أن نرى بوضوح الفرق بين الاثنين
الفئة العامة diffbewteenstartandrun {public static void main (String args []) {system.out.println (thread.currentThread (). getName ()) ؛ // إنشاء مؤشر ترابط لبدء وتشغيل سلسلة CALL STARTHREAD = موضوع جديد (مهمة جديدة ("ابدأ")) ؛ RunTherThread = موضوع جديد (مهمة جديدة ("Run")) ؛ startThread.start () ؛ // استدعاء طريقة سلسلة مؤشر الترابط - سيتم تنفيذها في // new Thread Runthread.run () ؛ // استدعاء طريقة تشغيل مؤشر ترابط - سيتم تنفيذها في // الحالي مؤشر الترابط}/ * * تطبيق بسيط Runnable */ Private Static Class Task Passions Runnable {Private String Caller ؛ المهمة العامة (سلسلة المتصل) {this.caller = caller ؛ } Override public void run () {system.out.println ("Caller:" + Caller + "والرمز على هذا الموضوع يتم تنفيذها بواسطة:" + thread.currentThread (). getName ()) ؛ }}}شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!