logo

مواضيع جافا | كيفية إنشاء موضوع في جافا

هناك طريقتان لإنشاء موضوع:

  1. عن طريق توسيع فئة الموضوع
  2. من خلال تنفيذ واجهة Runnable.

فئة الموضوع:

توفر فئة Thread مُنشئات وأساليب لإنشاء وتنفيذ العمليات على سلسلة رسائل. تعمل فئة Thread على توسيع فئة الكائن وتنفيذ واجهة قابلة للتشغيل.

منشئو فئة الخيط شائعة الاستخدام:

  • خيط()
  • الموضوع (اسم السلسلة)
  • الموضوع (Runnable)
  • الموضوع (Runnable، اسم السلسلة)

الطرق الشائعة لفئة الموضوع:

    تشغيل الفراغ العام ():يستخدم لتنفيذ الإجراء لموضوع.بداية الفراغ العام ():يبدأ تنفيذ مؤشر الترابط. يستدعي JVM طريقة التشغيل () على مؤشر الترابط.النوم الفارغ العام (ملي ثانية طويلة):يؤدي إلى سكون مؤشر الترابط الذي يتم تنفيذه حاليًا (إيقاف التنفيذ مؤقتًا) لعدد محدد من المللي ثانية.انضمام الفراغ العام ():ينتظر أن يموت الخيط.انضمام الفراغ العام (ملي ثانية طويلة):ينتظر موت مؤشر الترابط للميلي ثانية المحددة.كثافة العمليات العامة getPriority ():إرجاع أولوية الموضوع.مجموعة int العامة (أولوية int):يغير أولوية الموضوع.سلسلة عامة getName ():إرجاع اسم الموضوع.اسم مجموعة الفراغ العام (اسم السلسلة):يغير اسم الموضوع.الموضوع العام الحالي ():إرجاع مرجع مؤشر الترابط الذي يتم تنفيذه حاليًا.getId العام ():إرجاع معرف الموضوع.الموضوع العام getState ():إرجاع حالة الخيط.المنطقية العامة isAlive():اختبارات إذا كان الخيط على قيد الحياة.عائد الفراغ العام ():يؤدي إلى توقف كائن مؤشر الترابط الذي يتم تنفيذه حاليًا مؤقتًا والسماح بتنفيذ مؤشرات الترابط الأخرى.تعليق الفراغ العام ():يستخدم لتعليق الخيط (مهجور).استئناف الفراغ العام ():يستخدم لاستئناف الخيط المعلق (مهجور).توقف الفراغ العام ():يستخدم لإيقاف الخيط (مهجور).المنطقية العامة isDaemon ():يختبر ما إذا كان الخيط عبارة عن خيط خفي.مجموعة الفراغ العام Daemon (منطقي ب):يضع مؤشر الترابط على أنه خفي أو مؤشر ترابط المستخدم.مقاطعة الفراغ العام ():يقاطع الخيط.يتم مقاطعة المنطق المنطقي العام ():اختبارات إذا تم مقاطعة مؤشر الترابط.تمت مقاطعة منطقية ثابتة عامة ():اختبارات إذا تمت مقاطعة مؤشر الترابط الحالي.

واجهة قابلة للتشغيل:

يجب تنفيذ الواجهة القابلة للتشغيل بواسطة أي فئة تم تصميم مثيلاتها للتنفيذ بواسطة مؤشر ترابط. تحتوي الواجهة القابلة للتشغيل على طريقة واحدة فقط تسمى 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 ...