執行緒的狀態轉換以及基本操作

2021-10-03 01:17:14 字數 1711 閱讀 9176

public

class

createthreaddemo};

thread.

start()

;//2.實現runable介面

thread thread1 =

newthread

(new

runnable()

}); thread1.

start()

;//3.實現callable介面

executorservice service = executors.

newsinglethreadexecutor()

; future

future = service.

submit

(new

callable()

});try

catch

(interruptedexception e)

catch

(executionexception e)

}}

注釋:

作用:執行緒間互動的一種方式,表示乙個執行中的執行緒是否被其他執行緒進行了中斷操作

詳情見上篇部落格

作用:執行緒間協作的一種方式,表示該執行緒會等待某執行緒執行完才會執行,通常進行執行緒同步

比如:threada呼叫threadb.join(),threada會等待threadb執行完之後才會執行,也就是threadb先執行

public

class

joindemo

}static

class

jointhread

extends

thread

@override

public

void

run(

)catch

(interruptedexception e)}}

}

開啟10個執行緒,每個執行緒都會等待前乙個執行緒執行完畢才會繼續執行

public static native void sleep(long millis)

作用:表示當前按照指定時間進行休眠,交出cpu資源,但不會釋放鎖

特點有二:1. sleep方法達到休眠時間後就立刻進入同步佇列

2. sleep讓出的cpu資源其他執行緒都可以競爭

daemonthread.setdaemon(true);

public

class

daemondemo

catch

(interruptedexception e)

finally}}

}); daemonthread.

setdaemon

(true);

daemonthread.

start()

;//確保main執行緒結束前能給daemonthread能夠分到時間片

trycatch

(interruptedexception e)

}}

i am alive finally block i am alive
守護執行緒退出時並不會執行finally中的**

執行緒的基本概念 執行緒的基本狀態以及狀態之間的關係

乙個程式中可以有多條執行線索同時執行,乙個執行緒就是程式中的一條執行線索,每個執行緒上都關聯有要執行的 即可以有多段程式 同時執行,每個程式至少都有乙個執行緒,即main方法執行的那個執行緒。如果只是乙個cpu,它怎麼能夠同時執行多段程式呢?這是從巨集觀上來看的,cpu一會執行a線索,一會執行b線索...

執行緒的基本概念 執行緒的基本狀態以及狀態之間的關係

乙個執行緒是程序的乙個順序執行流,同類的多個執行緒共享一塊記憶體空間和一組系統資源,執行緒本身有乙個供程式執行時的堆疊。執行緒在切換時負荷小,因此,執行緒也被稱為輕負擔程序,乙個程序可以包含多個執行緒。1 新建狀態 new 新建立了乙個執行緒物件。2 就緒狀態 runnable 執行緒物件建立後,其...

執行緒的基本概念 執行緒的基本狀態以及狀態之間的關係?

執行緒 乙個程式中可以有多條執行線索同時執行,乙個執行緒就是程式中的一條執行線索,每個執行緒上都關聯有要執行的 即可以有多段 同時執行,每個程式至少有乙個執行緒,即main方法執行的執行緒。基本狀態 就緒 執行 阻塞 掛起 結束,wait 必須在同步 塊中使用。關係 呼叫執行緒的start 方法後使...