logo

חוטי Java | כיצד ליצור שרשור ב-Java

ישנן שתי דרכים ליצור שרשור:

  1. על ידי הרחבת שיעור Thread
  2. על ידי הטמעת ממשק הפעלה.

שיעור חוטים:

מחלקת Thread מספקת בנאים ושיטות ליצירה וביצוע פעולות על thread.Thread Class מרחיבה את מחלקת האובייקט ומיישמת ממשק שניתן להפעיל.

כיתה בשימוש נפוץ בוני חוטים:

  • פְּתִיל()
  • שרשור (שם מחרוזת)
  • שרשור (ניתן להרצה)
  • שרשור (Runnable r, String name)

שיטות נפוצות של מחלקת Thread:

    public void run():משמש לביצוע פעולה עבור שרשור.התחלה של חוסר ציבורי():מתחיל את הביצוע של ה-thread.JVM קורא למתודה run() ב-thread.שינה ריקה ציבורית (מילישניות ארוכות):גורם לשרשור המבצע כעת לישון (לפסיק באופן זמני את הביצוע) למשך המספר שצוין של אלפיות השנייה.public void join():מחכה שהשרשור ימות.הצטרפות ריק ציבורי (מילישניות ארוכות):מחכה שהשרשור ימות במשך המילישניות שצוינו.public int getPriority():מחזיר את העדיפות של השרשור.public int setPriority(int priority):משנה את העדיפות של השרשור.public String getName():מחזירה את שם השרשור.public void setName(שם מחרוזת):משנה את שם השרשור.נושא ציבורי currentThread():מחזיר את ההפניה של השרשור המבצע כעת.public int getId():מחזיר את המזהה של השרשור.Public Thread.State getState():מחזיר את מצב השרשור.boolean public isAlive():בודק אם השרשור חי.תשואת חלל ציבורי():גורם לאובייקט השרשור המבצע כעת להשהות זמנית ולאפשר לשרשורים אחרים להפעיל.public void suspend():משמש כדי להשעות את החוט (מופרש).קורות חיים לבטלים ציבוריים():משמש כדי לחדש את החוט המושעה (מחוק).public void stop():משמש כדי לעצור את השרשור (מופחת).בוליאני ציבורי isDaemon():בודק אם השרשור הוא שרשור דמון.public void setDaemon(בוליאנית b):מסמן את השרשור כדמון או שרשור משתמש.public void interrupt():קוטע את השרשור.בוליאני ציבורי isInterrupted():בודק אם השרשור נקטע.Public Static Boolean interrupted():בודק אם השרשור הנוכחי הופסק.

ממשק בר הפעלה:

ממשק Runnable צריך להיות מיושם על ידי כל מחלקה שהמופעים שלה מיועדים לביצוע על ידי שרשור. לממשק הניתן להרצה יש רק שיטה אחת בשם run().

שיטת java
    public void run():משמש לביצוע פעולה עבור שרשור.

פותח שרשור:

ה שיטת start() מחלקה של Thread משמשת לפתיחת שרשור חדש שנוצר. הוא מבצע את המשימות הבאות:

  • שרשור חדש מתחיל (עם callstack חדש).
  • השרשור עובר ממצב חדש למצב הפעלה.
  • כאשר השרשור מקבל הזדמנות לביצוע, שיטת ה-target run() שלו תפעל.

1) דוגמה ל-Java Thread על ידי הרחבת מחלקה Thread

שם קובץ: 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 על ידי יישום ממשק Runnable

שם קובץ: 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(); } } 

תְפוּקָה:

אורך מחרוזת bash
 thread is running... 

אם אינך מרחיב את המחלקה Thread, אובייקט המחלקה שלך לא יטופל כאובייקט thread. אז אתה צריך ליצור במפורש את אובייקט המחלקה Thread. אנו מעבירים את האובייקט של המחלקה שלך המיישמת Runnable כך ששיטת run() class שלך עשויה להפעיל.

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: 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); } } 

תְפוּקָה:

int במחרוזת
 My new thread Now the thread is running ...