一、什麼是執行緒?
定義:執行緒是程序中的乙個執行單元,負責當前程序中程式的執行,乙個程序中至少有乙個執行緒。乙個程序中是可以有多個執行緒的,這個應用程式也可以稱之為多執行緒程式。
簡而言之:乙個程式執行後至少有乙個程序,乙個程序中可以包含多個執行緒
二、怎麼實現多執行緒?
下面的兩種方式婦孺皆知
1.繼承thread類
2.實現runnable介面package com.hc.thread;
public
class
test1
extends
thread
}class
mythread
extends
thread
public
void
mytask()
}
三、執行緒的幾種狀態package com.hc.thread;
public
class
test1
extends
thread
}class
myrunnable
implements
runnable
public
void
mytask()
}
1.新建狀態
當用new操作符建立乙個執行緒時。此時程式還沒有開始執行執行緒中的**。
2.就緒狀態
3.執行狀態
它才進入執行狀態,真正開始執行run()方法。
4.阻塞狀態
執行緒執行過程中,可能由於各種原因進入阻塞狀態:
①執行緒通過呼叫sleep方法進入睡眠狀態;
②執行緒呼叫乙個在i/o上被阻塞的操作,即該操作在輸入輸出操作完成之前不會返回到它的呼叫者;
③執行緒試圖得到乙個鎖,而該鎖正被其他執行緒持有;
④執行緒在等待某個觸發條件;
所謂阻塞狀態是正在執行的執行緒沒有執行結束,暫時讓出cpu,這時其他處於就緒狀態的執行緒就可以獲得cpu時間,進入執行狀態。
5.死亡狀態
有兩個原因會導致執行緒死亡:
①run方法正常退出而自然死亡;
②乙個未捕獲的異常終止了run方法而使執行緒猝死;
四、兩種實現方式的區別
1.thread類是runnable介面的子類,使用runnable介面實現多執行緒可以避免單繼承的侷限性。
2.runnable介面實現的多執行緒可以比thread類實現的多執行緒更加清楚的描述資料共享的概念
多執行緒兩種實現方式
public class testthread1 extends thread public static void main string args 執行結果如下 可見執行緒由cpu隨機排程的。public class testthread2 extends thread override pub...
實現多執行緒的兩種方式
1 runnable 是乙個介面,該介面中只包含了乙個run 方法。它的定義如下 public inte ce runnablerunnable的作用,實現多執行緒。我們可以定義乙個類a實現runnable介面 然後,通過new thread new a 等方式新建執行緒。2 thread 是乙個類...
實現多執行緒的兩種方式
1.建立類繼承thread類,重寫run public class mythread extends thread 2.測試public class test 1.建立類實現runnable介面,重寫run public class myrunnable implements runnable 2....