建立一個執行緒有兩種方法:
Thread
類。Runnable
介面。Thread類Thread
類提供了線上程上建立和執行操作的建構函式和方法。Thread
類擴充套件了Object
類並實現了Runnable
介面。
常用的Thread類建構函式
Thread()
Thread(String name)
Thread(Runnable r)
Thread(Runnable r,String name)
Thread類的常用方法:
public void run()
: 用於執行執行緒的操作。public void start()
: 開始執行執行緒,JVM呼叫執行緒上的run()
方法。public void sleep(long miliseconds)
: 使當前正在執行的執行緒休眠(暫時停止執行)達指定的毫秒數。public void join()
: 等待執行緒死亡。public void join(long miliseconds)
: 按指定的毫秒數等待執行緒死亡。public int getPriority()
: 返回執行緒的優先順序。public int setPriority(int priority)
: 更改執行緒的優先順序。public String getName()
: 返回執行緒的名稱。public void setName(String name)
: 更改執行緒的名稱。public int getId()
:返回執行緒的編號(ID)。public Thread.State getState()
: 返回執行緒的狀態。public boolean isAlive()
: 測試執行緒是否處於活動狀態。public void yield()
: 使當前正在執行的執行緒物件暫時暫停並允許其他執行緒執行。public void suspend()
: 用於掛起執行緒(depricated)。public void resume()
: 用於恢復掛起的執行緒(depricated)。public void stop()
: 用於停止執行緒(depricated)。public boolean isDaemon()
: 測試該執行緒是否為守護行程執行緒。public void setDaemon(boolean b)
: 將執行緒標記為守護行程或使用者執行緒。public void interrupt()
: 中斷執行緒。public boolean isInterrupted()
: 測試執行緒是否被中斷。public static boolean interrupted()
: 測試當前執行緒是否已被中斷。Runnable介面:Runnable
介面應由任何其範例由執行緒執行類實現。Runnable
介面只有一個run()
方法。
public void run()
: 用於執行執行緒的操作。啟動執行緒:
Thread
類的start()
方法用於啟動新建立的執行緒。它執行以下任務:
New
狀態移動到Runnable
狀態。run()
方法將執行。package com.yiibai;
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...
package com.yiibai;
class Multi implements Runnable {
public void run() {
System.out.println("thread is running...");
}
public static void main(String args[]) {
Multi m1 = new Multi();
Thread t1 = new Thread(m1);
t1.start();
}
}
執行上面範例程式碼,得到以下結果:
thread is running...
如果沒有擴充套件Thread
類,類物件就不會被視為一個執行緒物件。所以需要明確地建立Thread
類物件。傳遞實現Runnable
類的物件,以便類的run()
方法可以執行。