مطالبی در مورد جاوا

مطالبی در مورد جاوا
بسم الله الرحمن الرحیم

Thread

پنجشنبه, ۳ شهریور ۱۴۰۱، ۰۶:۵۲ ق.ظ

روش یک: کلاسی را می نویسیم و آن را با رانبل ایمپلیمنت می کنیم و داخلش متد «ران» را اورراید می کنیم. و بعد آن را در یک کلاس دیگر اجرا می کنیم. به این صورت که یک آبجکت از آن کلاس می سازیم و بعد یک ثرد تولید می کنیم که در کانستراکتورش این آبجکت را قرار می دهیم و متد «استارت» آن ثرد را اجرا می کنیم.
روش دو: یک کلاس تولید می کنیم که کلاس ثرد را اکستند می کند و بعد متد ران آن را اورراید می کنیم. بعد از این کلاس یک آبجکت تولید می کنیم و متد استارت آن را اجرا می کنیم.

 

 

 

نمونه ای برای روش یک:

class Class1 implements Runnable {
     @ Override
    public void run() {
        for (int i = 0; i < 20; i++)
            System.out.println("Class1: " + i);
    }
}
// _________________________________________
class Class2 implements Runnable {
     @ Override
    public void run() {
        for (int i = 0; i < 20; i++)
            System.out.println("Class2:    " + i);
    }
}
// _________________________________________
public class Tests {
    public static void main(String[]args) {
        Class1 object1 = new Class1();
        Thread thread1 = new Thread(object1);
        thread1.start();

        Class2 myObject2 = new Class2();
        Thread thread2 = new Thread(myObject2);
        thread2.start();

        for (int i = 0; i < 20; i++) {
            System.out.println(" main:                " + i);
        }
    }
}

 

نمونه ای برای روش دو:

class Class1 extends Thread {
     @ Override
    public void run() {
        for (int i = 0; i < 20; i++)
            System.out.println("Class1: " + i);
    }
}
// _________________________________________
class Class2 extends Thread {
     @ Override
    public void run() {
        for (int i = 0; i < 20; i++)
            System.out.println("Class2:    " + i);
    }
}
// _________________________________________
public class Tests {
    public static void main(String[]args) {
        Class1 object1 = new Class1();
        object1.start();

        Class2 myObject2 = new Class2();
        myObject2.start();

        for (int i = 0; i < 20; i++) {
            System.out.println(" main:                " + i);
        }
    }
}

چرخه حیات یک ثرد:

 

 

----------------------------------

متدهای پرکاربرد کلاس Thread

  • public void run(): نقطه ی شروع اجرای thread می باشد. اجرای thread از این متد آغاز می شود.
  • public void start(): اجرای thread را آغاز می کند. پس از فراخوانی این متد، JVM متد run() را در سطح کلاس Thread صدا می زند.
  • public void sleep (long miliseconds): سبب می شود thread ای که در زمان حاضر در حال اجرا به تعداد میلی ثانیه های مشخص به طور موقت، متوقف شود.
  • public void join(): منتظر می ماند تا thread جاری از حافظه پاک شده و از بین برود.
  • public void join(long miliseconds): حداکثر تعداد میلی ثانیه های مشخصی صبر می کند تا thread جاری از بین برود.
  • public int getPriority(): مقدار اولویت اجرا (priority) مربوط به thread جاری را برمی گرداند.
  • public int setPriority(int priority): مقدار اولویت اجرا thread را تغییر می دهد.
  • public String getName(): اسم thread جاری را برمی گرداند.
  • public void setName(String name): اسم thread جاری را تغییر می دهد.
  • public Thread currentThread(): متغیری از جنس thread جاری (اشاره گر به thread جاری) را برمی گرداند.
  • public int getId(): شناسه ی منحصر بفرد و متناظر thread که در زمان ایجاد به آن تخصیص یافته را برمی گرداند.
  • public Thread.State getState(): وضعیتی که thread جاری در آن قرار دارد را به عنوان خروجی برمی گرداند.
  • public Boolean IsAlive(): بررسی می کند آیا thread مورد نظر در حافظه موجود (alive) بوده یا خیر.
  • public void yield(): فراخوانی این متد سبب می شود آبجکت یا نمونه thread ای که در زمان حاضر در حال اجرا است به طور موقت متوقف شده و به سایر thread ها فرصت اجرا داده شود.
  • public void suspend(): thread را به حالت تعلیق در می آورد (منسوخ).
  • public void resume(): با فراخوانی این متد thread ای که به وسیله ی متد suspend() به حالت تعلیق درآمده، کار خود را ادامه می دهد(منسوخ).
  • public void stop(): آبجکت thread جاری را متوقف می کند (منسوخ).
  • public Boolean IsDaemon(): بررسی می کند آیا thread جاری، یک thread پردازش عملیات پس زمنیه ای/از نوع daemonهست یا خیر.
  • public void setDaemon(boolean b): مشخص می کند thread مورد نظر بایستی یک user thread باشد یا daemon thread.
  • public void interrupt(): thread جاری را متوقف می کند.
  • public boolean isInterrupted() بررسی می کند آیا thread متوقف شده است یا خیر.
  • public static boolean interrupted(): بررسی می کند آیا thread جاری متوقف شده است یا خیر.
موافقین ۰ مخالفین ۰ ۰۱/۰۶/۰۳

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی