العودة إلى الدورة

مقدمة في تعدد الخيوط وفئة Thread

إتقان لغة Java: من الصفر إلى مطور محترف (رحلة من 50 درساً)

الدرس 46: مقدمة في تعدد الخيوط (Multithreading)

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

1. العملية مقابل الخيط

  • العملية (Process): بيئة تنفيذ لها مجموعتها الكاملة من الموارد (ذاكرة، ملفات). العمليات المتعددة تعمل بشكل مستقل.
  • الخيط (Thread): عملية فرعية خفيفة داخل العملية. تشترك الخيوط في موارد العملية (مثل الذاكرة)، مما يجعل التواصل بينها سريعاً ولكنه يقدم تعقيداً في ضمان أمان البيانات.

2. إنشاء خيط (الطريقة 1: توسيع فئة Thread)

أبسط طريقة هي إنشاء فئة فرعية من Thread وتجاوز دالة run().

java public class MyThread extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName() + " is running."); } }

// الاستخدام: MyThread t1 = new MyThread(); t1.start(); // يستدعي run() ويبدأ الخيط بشكل متزامن

3. إنشاء خيط (الطريقة 2: تنفيذ واجهة Runnable)

هذه هي الطريقة المفضلة لأنها تسمح لفئتك بوراثة فئة أخرى مع الاستمرار في تعريف مهمة الخيط.

java public class MyRunnable implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName() + " is running."); } }

// الاستخدام: Thread t2 = new Thread(new MyRunnable()); t2.start();

4. دورة حياة الخيط

تنتقل الخيوط عبر عدة حالات: جديد (New)، قابل للتشغيل (Runnable)، يعمل (Running)، متوقف/ينتظر (Blocked/Waiting)، ومنتهٍ (Terminated).