هناك طريقتان لإنشاء موضوع:
- عن طريق توسيع فئة الموضوع
- من خلال تنفيذ واجهة Runnable.
فئة الموضوع:
توفر فئة Thread مُنشئات وأساليب لإنشاء وتنفيذ العمليات على سلسلة رسائل. تعمل فئة Thread على توسيع فئة الكائن وتنفيذ واجهة قابلة للتشغيل.
منشئو فئة الخيط شائعة الاستخدام:
- خيط()
- الموضوع (اسم السلسلة)
- الموضوع (Runnable)
- الموضوع (Runnable، اسم السلسلة)
الطرق الشائعة لفئة الموضوع:
واجهة قابلة للتشغيل:
يجب تنفيذ الواجهة القابلة للتشغيل بواسطة أي فئة تم تصميم مثيلاتها للتنفيذ بواسطة مؤشر ترابط. تحتوي الواجهة القابلة للتشغيل على طريقة واحدة فقط تسمى run().
اثنين إلى واحد معدد
بدء الموضوع:
ال طريقة البدء (). يتم استخدام فئة Thread لبدء موضوع تم إنشاؤه حديثًا. ويقوم بالمهام التالية:
- يبدأ موضوع جديد (بمكدس استدعاء جديد).
- ينتقل الخيط من الحالة الجديدة إلى الحالة القابلة للتشغيل.
- عندما يحصل الخيط على فرصة للتنفيذ، سيتم تشغيل أسلوب التشغيل () المستهدف الخاص به.
1) مثال موضوع جافا عن طريق توسيع فئة الموضوع
اسم الملف: Multi.java
class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } }
انتاج:
تثبيت الشعلة
thread is running...
2) مثال Java Thread من خلال تطبيق واجهة قابلة للتشغيل
اسم الملف: Multi3.java
class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } }
انتاج:
thread is running...
إذا لم تكن تقوم بتوسيع فئة Thread، فلن يتم التعامل مع كائن الفئة الخاص بك ككائن مؤشر ترابط. لذلك تحتاج إلى إنشاء كائن فئة Thread بشكل صريح. نقوم بتمرير كائن فصلك الذي ينفذ Runnable حتى يمكن تنفيذ طريقة تشغيل فصلك ().
3) استخدام فئة الموضوع: الموضوع (اسم السلسلة)
يمكننا استخدام فئة Thread مباشرةً لإنتاج سلاسل رسائل جديدة باستخدام المُنشئات المحددة أعلاه.
اسم الملف: MyThread1.java
الذئب مقابل الثعلب
public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } }
انتاج:
My first thread
4) استخدام فئة الموضوع: Thread(Runnable r، String name)
لاحظ البرنامج التالي
اسم الملف: MyThread2.java
public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } }
انتاج:
My new thread Now the thread is running ...