線程類的 start() 方法用於開始線程的執行。此方法的結果是兩個並發運行的線程:當前線程(從調用 start 方法返回)和另一個線程(執行其 run 方法)。
start()方法內部調用Runnable接口的run()方法,在單獨的線程中執行run()方法指定的代碼。
啟動線程執行以下任務:
- 它統計了一個新線程
- 線程從 New State 移動到 Runnable 狀態。
- 當線程有機會執行時,它的目標 run() 方法將運行。
用法
public void start()
返回值
It does not return any value.
異常
IllegalThreadStateException - 如果多次調用 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:通過實現 Runnable 接口
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)
相關用法
- Java Thread stop()用法及代碼示例
- Java Thread setDefaultUncaughtExceptionHandler()用法及代碼示例
- Java Thread suspend()用法及代碼示例
- Java Thread setContextClassLoader()用法及代碼示例
- Java Thread sleep()用法及代碼示例
- Java Thread setDaemon()用法及代碼示例
- Java Thread setName()用法及代碼示例
- Java Thread setPriority()用法及代碼示例
- Java Thread toString()用法及代碼示例
- Java Thread interrupted()用法及代碼示例
- Java Thread destroy()用法及代碼示例
- Java Thread holdLock()用法及代碼示例
- Java Thread getContextClassLoader()用法及代碼示例
- Java Thread getThreadGroup()用法及代碼示例
- Java Thread isInterrupted()用法及代碼示例
- Java Thread enumerate()用法及代碼示例
- Java Thread notify()用法及代碼示例
- Java Thread resume()用法及代碼示例
- Java Thread activeCount()用法及代碼示例
- Java Thread isDaemon()用法及代碼示例
注:本文由純淨天空篩選整理自 Java Thread start() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。