ישנן שתי דרכים ליצור שרשור:
- על ידי הרחבת שיעור Thread
- על ידי הטמעת ממשק הפעלה.
שיעור חוטים:
מחלקת Thread מספקת בנאים ושיטות ליצירה וביצוע פעולות על thread.Thread Class מרחיבה את מחלקת האובייקט ומיישמת ממשק שניתן להפעיל.
כיתה בשימוש נפוץ בוני חוטים:
- פְּתִיל()
- שרשור (שם מחרוזת)
- שרשור (ניתן להרצה)
- שרשור (Runnable r, String name)
שיטות נפוצות של מחלקת Thread:
ממשק בר הפעלה:
ממשק Runnable צריך להיות מיושם על ידי כל מחלקה שהמופעים שלה מיועדים לביצוע על ידי שרשור. לממשק הניתן להרצה יש רק שיטה אחת בשם run().
שיטת java
פותח שרשור:
ה שיטת 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 ...