• 0

كيف أنشئ نيسب Thread في جافا؟

أعمل على تطبيق يقوم بإظهار خيارات أجوبة لسؤال. فكيف أجعل الأسئلة تظهر بشكل متتالي وبفارق مدة زمنية معينة باستخدام Thread في جافا؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

يوجد طريقتان لإنشاء Thread في جافا:

1- باستخدام الصف Thread من المكتبة  java.lang

2- تطبيق Runnable interface من المكتبة java.lang

لتشغيل الـ Thread يتم استدعاء الدالة start. بعد ذلك يتم تنفيذ الدالة run. أنشئ كائن صف class وليكن مثلًا TryThread واجعله يرث من الصف Thread.

قم بإعادة تعريف الدالة run التي ستنفذ بعد تشغيل الـThread والتي ستقوم بطباعة النصوص. في المثال أدناه تم إنشاء 3 Threads وتشغيلهم بالتتالي وكل Thread سيقوم بتنفيذ الدالة run الخاصة به. تحوي الدالة run على حلقة تكرار غير منتهية تقوم بتكرار طباعة النصوص حتى يتم ضغط زر enter:

import java.io.IOException;

class TryThread extends Thread {
  public TryThread(String firstName, String secondName, long delay) {
    this.firstName = firstName;
    this.secondName = secondName;
    aWhile = delay;
    setDaemon(true);
  }
  public void run() {
    try {
      while (true) {
        System.out.print(firstName);
        sleep(aWhile);
        System.out.print(secondName + "\n");
      }
    } catch (InterruptedException e) {
      System.out.println(firstName + secondName + e);
    }
  }
  private String firstName;
  private String secondName;
  private long aWhile;
}
public class MainClass {
  public static void main(String[] args) {
    Thread first = new TryThread("A ", "a  ", 200L);
    Thread second = new TryThread("B ", "b ", 300L);
    Thread third = new TryThread("C ", "c ", 500L);
    System.out.println("Press Enter when you have had enough...\n");
    first.start();
    second.start();
    third.start();
    try {
      System.in.read();
      System.out.println("Enter pressed...\n");
    } catch (IOException e) {
      System.out.println(e);
    }
    return;
  }
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن