ה הַתחָלָה() שיטת ה-thread class משמשת כדי להתחיל את ביצוע ה-thread. התוצאה של שיטה זו היא שני שרשורים הפועלים במקביל: השרשור הנוכחי (שחוזר מהקריאה לשיטת ההתחלה) והשרשור השני (שמבצע את שיטת הריצה שלו).
שיטת start() קוראת באופן פנימי לשיטת run() של ממשק Runnable כדי להפעיל את הקוד שצוין בשיטת run() בשרשור נפרד.
שרשור ההתחלה מבצע את המשימות הבאות:
- זה מפרט שרשור חדש
- השרשור עובר ממצב חדש למצב ניתן להרצה.
- כאשר השרשור מקבל הזדמנות לביצוע, שיטת ה-target run() שלו תפעל.
תחביר
public void start()
ערך החזרה
It does not return any value.
יוצא מן הכלל
UnlegalThreadStateException - חריג זה זורק אם מתודה start() נקראת יותר מפעם אחת.
דוגמה 1: על ידי הרחבת מחלקה של חוט
public class StartExp1 extends Thread { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp1 t1=new StartExp1(); // this will call run() method t1.start(); } }בדוק את זה עכשיו
תְפוּקָה:
Thread is running...
דוגמה 2: על ידי יישום ממשק שניתן להרצה
public class StartExp2 implements Runnable { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp2 m1=new StartExp2 (); Thread t1 =new Thread(m1); // this will call run() method t1.start(); } }בדוק את זה עכשיו
תְפוּקָה:
Thread is running...
דוגמה 3: כאשר אתה קורא למתודה start() יותר מפעם אחת
public class StartExp3 extends Thread { public void run() { System.out.println('First thread running...'); } public static void main(String args[]) { StartExp3 t1=new StartExp3(); t1.start(); // It will through an exception because you are calling start() method more than one time t1.start(); } }בדוק את זה עכשיו
תְפוּקָה:
First thread running... Exception in thread 'main' java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) at StartExp3.main(StartExp3.java:12)