الفرق بين Runnable و Thread

جدول المحتويات:

الفرق بين Runnable و Thread
الفرق بين Runnable و Thread

فيديو: الفرق بين Runnable و Thread

فيديو: الفرق بين Runnable و Thread
فيديو: Difference Between Implementing Runnable Interface and Extending Thread Class | Runnable vs Thread 2024, شهر نوفمبر
Anonim

الفرق الرئيسي - قابل للتشغيل مقابل الخيط

يُعرف البرنامج قيد التنفيذ بالعملية. يمكن تقسيم العملية إلى عمليات فرعية متعددة. على سبيل المثال ، يعد Microsoft Word عملية. في الوقت نفسه ، يتحقق من الأخطاء الإملائية والنحوية. هذه عملية فرعية. تُعرف هذه العمليات الفرعية بالخيوط. Multithreading هو عملية تنفيذ سلاسل رسائل متعددة في وقت واحد. يمكن إنشاء التطبيقات المترابطة باستخدام لغات برمجة مختلفة. Runnable و Thread مرتبطة ببرمجة Java. هناك طريقتان في Java لإنشاء مؤشر ترابط من خلال تنفيذ واجهة Runnable أو توسيع فئة Thread.عند تنفيذ Runnable ، يمكن للعديد من مؤشرات الترابط مشاركة نفس كائن مؤشر الترابط أثناء وجوده في فئة Extending Thread ، لكل مؤشر ترابط كائن فريد مقترن به. هذا هو الفرق الرئيسي بين Runnable و Thread.

ما هو Runnable؟

يمر الخيط عبر بعض الحالات. "الجديد" هو بداية دورة حياة الخيط. بعد استدعاء أسلوب start () على مؤشر ترابط جديد ، يصبح قابلاً للتشغيل. إذا حدد مجدول الخيط الموضوع ، فإنه ينتقل إلى حالة التشغيل. الخيط ينتظر الحالة إذا كان هذا الخيط ينتظر خيط آخر لتنفيذ مهمة. بعد أن يكمل الخيط العمل ، ينتقل إلى حالة الإنهاء.

يمكن تنفيذ الخيط باستخدام واجهة Runnable. الرجوع إلى البرنامج أدناه.

الفرق بين Runnable و Thread
الفرق بين Runnable و Thread

الشكل 01: برنامج Java لإنشاء مؤشر ترابط باستخدام واجهة التشغيل

وفقًا للبرنامج أعلاه ، تطبق فئة Runnable Demo واجهة Runnable. طريقة run () موجودة داخل الفئة التي تنفذ واجهة Runnable. إنها نقطة دخول الخيط. المنطق في طريقة run (). في البرنامج الرئيسي ، يتم إنشاء مؤشر ترابط عن طريق تحديد كائن تم إنشاء مثيل له من فئة Runnable Demo. إنه t1. يتم استدعاء طريقة start () باستخدام t1.

الرجوع إلى البرنامج أدناه.

الفرق بين Runnable و Thread_Figure 02
الفرق بين Runnable و Thread_Figure 02

الشكل 02: برنامج Java لإنشاء خيط لتنفيذ حلقة ، من خلال تنفيذ واجهة Runnable

وفقًا للمثال أعلاه ، تطبق فئة Runnable Demo واجهة Runnable. المنطق المطلوب تنفيذه باستخدام الخيط مكتوب بطريقة run (). في البرنامج الرئيسي ، يتم إنشاء مؤشر ترابط عن طريق تحديد كائن تم إنشاء مثيل له من فئة Runnable Demo.إنه t1. ثم يتم استدعاء طريقة start () باستخدام t1.

ما هو الموضوع؟

الطريقة الأخرى لإنشاء مؤشر ترابط هي من خلال توسيع فئة مؤشر الترابط. يتكون من ثلاث خطوات. الأول هو إعلان الفئة كتوسيع فئة مؤشر الترابط. بعد ذلك ، يجب كتابة طريقة run (). يحتوي على تسلسل الخطوات التي يجب على الخيط تنفيذها. أخيرًا ، يتم إنشاء كائن مؤشر الترابط ، ويتم استدعاء طريقة start () لبدء تنفيذ مؤشر الترابط. الرجوع إلى البرنامج أدناه.

الفرق بين Runnable و Thread_Figure 03
الفرق بين Runnable و Thread_Figure 03

الشكل 03: برنامج جافا الذي يمتد فئة الموضوع

وفقًا للبرنامج أعلاه ، تقوم فئة MyThread بتوسيع فئة Thread. إنه يتجاوز طريقة التشغيل. يحتوي الأسلوب run () على المنطق الذي سيتم تنفيذه بواسطة مؤشر الترابط. إنها نقطة الدخول إلى الخيط.ثم يتم إنشاء كائن مؤشر الترابط. إنه موضوع 1. بدأ الخيط باستخدام طريقة البدء (). سيتم تنفيذ استدعاء لتشغيل طريقة ().

مثال على برنامج من فئتين لتمديد فئة الموضوع على النحو التالي.

الفرق الرئيسي بين Runnable و Thread
الفرق الرئيسي بين Runnable و Thread

الشكل 04: برنامج جافا بفئتين توسعان فئة الموضوع

وفقًا للبرنامج أعلاه ، تعمل كلا الفئتين A و B على توسيع فئة Thread. كلا الفئتين لهما تطبيق طريقة run (). الخيط الرئيسي هو الذي ينفذ الطريقة () الرئيسية. قبل أن يموت الخيط الرئيسي ، فإنه ينشئ ويبدأ thread1 و thread2. بحلول الوقت الذي وصل فيه الخيط الرئيسي إلى نهاية الطريقة الرئيسية ، تعمل ثلاثة خيوط متوازية. لا يوجد ترتيب محدد تعطي فيه سلاسل الرسائل المخرجات. بمجرد بدء الخيط ، يصعب تحديد الترتيب الذي سيتم تنفيذه.يركضون بشكل مستقل.

ما هي أوجه التشابه بين Runnable و Thread؟

كلاهما يستخدم لإنشاء سلسلة رسائل في Java

ما هو الفرق بين Runnable و Thread؟

Runnable مقابل Thread

Runnable هي واجهة في Java لإنشاء سلسلة رسائل تسمح للعديد من سلاسل الرسائل بمشاركة نفس كائن مؤشر الترابط. الخيط عبارة عن فئة في Java لإنشاء سلسلة حيث يكون لكل مؤشر ترابط كائن فريد مرتبط به.
ذاكرة
في Runnable ، تتشارك خيوط متعددة في نفس الكائن ، لذا تتطلب ذاكرة أقل. في فئة مؤشر الترابط ، يقوم كل مؤشر ترابط بإنشاء كائن فريد ، وبالتالي يتطلب المزيد من الذاكرة.
توسيع القدرة
بعد تنفيذ واجهة Runnable ، يمكن أن تمتد فئة. الوراثة المتعددة غير مدعومة في Java. بعد تمديد فئة Thread ، لا يمكن تمديد أي فئة أخرى.
استدامة الكود
واجهة Runnable تجعل الكود أكثر قابلية للصيانة. في فئة الموضوع ، تستغرق الصيانة وقتًا طويلاً.

ملخص - Runnable vs Thread

تنقسم العملية إلى عمليات فرعية متعددة لأداء مهام متعددة في نفس الوقت. تُعرف هذه العمليات الفرعية بالخيوط. يمكن إجراء إنشاء مؤشر ترابط من خلال تنفيذ واجهة التشغيل أو بتوسيع فئة مؤشر الترابط. من السهل تمديد فئة Thread ، لكنها ليست ممارسة أفضل في البرمجة الموجهة للكائنات.عند تنفيذ Runnable ، يمكن للعديد من مؤشرات الترابط مشاركة نفس كائن مؤشر الترابط أثناء توسيع فئة مؤشر الترابط لكل مؤشر ترابط كائن فريد مقترن به. هذا هو الفرق بين Runnable و Thread. في فئة مؤشر الترابط ، يمكن أن يستهلك إنشاء كائنات متعددة المزيد من الذاكرة.

قم بتنزيل ملف PDF الخاص بـ Runnable vs Thread

يمكنك تنزيل نسخة PDF من هذه المقالة واستخدامها للأغراض غير المتصلة بالإنترنت وفقًا لملاحظة الاقتباس. يرجى تنزيل نسخة PDF هنا الفرق بين Runnable و Thread

موصى به: