Java多型
阿新 • • 發佈:2020-11-22
執行緒的基本狀態
新建狀態(New)
就緒狀態(Runnable)
執行狀態(Running)
阻塞狀態(Blocked)
1.等待阻塞:執行中執行wait()方法
2.同步阻塞:執行緒在獲取synchronized同步鎖失敗(因為鎖被其它執行緒所佔用)
3.其他阻塞: 通過呼叫執行緒的sleep()或join()或發出了I/O請求時,執行緒會進入到阻塞狀態。當sleep()超時、join()等待執行緒終止或超時、或者I/O處理完畢時,轉入就緒狀態。
死亡狀態(Dead)
執行緒建立
1、繼承Thread類
class 類名 extends Thread{ 方法1; 方法2; … publicvoid run(){ // other code… } 屬性1; 屬性2; … }
2、實現Runable介面
class 類名 implements Runnable{ 方法1; 方法2; … public void run(){ // other code… } 屬性1; 屬性2; … }
實現Runnable介面比繼承Thread類所具有的優勢:
1):適合多個相同的程式程式碼的執行緒去處理同一個資源
2):可以避免java中的單繼承的限制
3):增加程式的健壯性,程式碼可以被多個執行緒共享,程式碼和資料獨立。
在java中,每次程式執行至少啟動2個執行緒。一個是main執行緒,一個是垃圾收集執行緒。因為每當使用java
命令執行一個類的時候,實際上都會啟動一個JVM,每一個jVM實習在就是在作業系統中啟動了一個程序。