البرمجة

فهم الفرق بين تنفيذ Runnable وتمديد Thread

عندما تقوم بتنفيذ الواجهة Runnable بدلاً من تمديد الفئة Thread، يجب عليك تغيير الطريقة التي تقوم فيها بإنشاء وتشغيل الخيوط. بدلاً من إنشاء مثيل من الفئة Processor مباشرة وتمريره إلى مثيل Thread، يجب عليك إنشاء مثيل Thread وتمريره مع مثيل من الفئة Processor التي تنفذ Runnable.

هذا يعني أن الكود يجب أن يبدو كالتالي عند استخدام Runnable:

java
public class Processor implements Runnable { private boolean running = true; public void run() { while (running) { System.out.println("Hello there!"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } public void shutDown() { running = false; } } public class ProcessorDemo { public static void main(String[] args) { Processor processor = new Processor(); Thread proc1 = new Thread(processor); proc1.start(); System.out.println("Press return to stop"); Scanner sc = new Scanner(System.in); sc.nextLine(); processor.shutDown(); } }

بهذه الطريقة، يمكنك استخدام الطريقتين (تنفيذ Runnable وتمديد Thread) لإنشاء الخيوط بنجاح، ولكن يجب أن تتأكد من تعديل الكود بشكل مناسب لتتناسب مع الطريقة التي تستخدمها.

المزيد من المعلومات

عند استخدام الواجهة Runnable، يمكنك فصل مهمة التنفيذ عن الفئة Thread، مما يتيح لك إمكانية استخدام نفس الكود في عدة أماكن بدون الحاجة لإعادة كتابته. بالإضافة إلى ذلك، يمكنك تمديد الفئة بالفعل (Processor) بدلاً من تمديد Thread، مما يتيح لك استخدام تقنيات التمديد بشكل أكثر مرونة.

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

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

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!