Avatar ·

في Java: implements Runnable مقابل extends Thread — أيهما تختار لإنشاء خيط؟

مرحباً بالجميع! بدأت دراسة تعدد الخيوط في Java وارتبكت في طريقتين لإنشاء الخيوط. في كل مكان يكتبون أنه يمكنك إما توسيع класс Thread أو تنفيذ واجهة Runnable. لكن متى تستخدم أيهما؟ إليك الأمثلة التي جربتها: 1) extends Thread: ```java class MyThread extends Thread { public void run() { System.out.println("الخيط يعمل"); } } public class Main { public static void main(String[] args) { MyThread t = new MyThread(); t.start(); } } ``` 2) implements Runnable: ```java class MyRunnable implements Runnable { public void run() { System.out.println("الخيط يعمل"); } } public class Main { public static void main(String[] args) { MyRunnable task = new MyRunnable(); Thread t = new Thread(task); t.start(); } } ``` كلا الخيارين يعملان — لقد تحققت. لكن ما الفرق؟ لماذا ينصح في الكتب الدراسية باستخدام Runnable؟ وهل يمكن