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