關於多執行緒生命週期原理

2021-09-06 09:46:22 字數 1372 閱讀 7974

平時我們經常聽說asp.net頁面生命週期,大致是 建立頁面類,打造頁面控制項樹,渲染響應輸出頁面(當然裡面還有很多管道執行處理事件)最後呈現在我們面前就是乙個網頁(也就我們通常說的頁面生命週期!)

今天本人談談多執行緒的生命週期,如有不對還望包涵,多多指教!

首先上上圖:

為什麼會出現這種輸出情況呢?當然你們會想到不是多執行緒嘛,當然是可以切換的(不錯一下,這裡也就所謂的非同步執行緒,要是同步執行緒必須等待另外乙個執行緒結束才行,因為生活有的東西也必須用到同步,取錢就類似),沒錯這是執行緒產生的效果,這時候可能你會問,它們為什麼輸出結果有長有段呢?

下面給出乙個圖來說說明它們為什麼產生這種效果:

新建狀態:我們執行main方法(也就是建立執行緒,他是乙個主線)預設調statrt--->就緒狀態

就緒狀態:表示有許可權獲取cpu的時間片,就是獲取cpu分配執行這個執行緒的時間(說到這裡你可能會明白一些東西,為什麼相互切,為輸它輸出多一點,它要輸出少一點!當然是分配的時間長短不一樣!)----->執行狀態

執行狀:也就是就緒狀態拿到cpu分配的時間片之後就進入執行狀態

如輸出:  main--->0 1  2 3  4 在輸入run 0 1 2 3  因為main執行緒分配的cpu時間片只有那麼一點時間如0.001s 執行狀態方法沒有執行完它的時間就用完了,從而進入

阻塞狀態,在去請求cpu分配執行時間片,當main時間片執行完了之後,thread執行緒它在建立的時候當然也分配時間。哥們你搞完了(搞完的是剛才的時間片哦),該我了!!!!

所以就一直這樣搞下去(當然接著上一次執行哦!),到執行緒銷亡(所以就出現我們看到的效果!)。

不從:上面輸出有長有短,就是獲取的cpu時間片長短不一樣!主線程的執行for 時候,執行到輸出 main 4 時間片就用完..同理run方也是一樣的!

下面上圖看程式輸出的不同結果!(看到效果再去看上面那個執行緒生命週期圖)

好了,就說到這裡,如有說的不對的地方,歡迎指出就好,方不要丟磚哦!

關於多執行緒生命週期原理

平時我們經常聽說asp.net頁面生命週期,大致是 建立頁面類,打造頁面控制項樹,渲染響應輸出頁面 當然裡面還有很多管道執行處理事件 最後呈現在我們面前就是乙個網頁 也就我們通常說的頁面生命週期!今天本人談談多執行緒的生命週期,如有不對還望包涵,多多指教!首先上上圖 為什麼會出現這種輸出情況呢?當然...

JAVA 多執行緒 生命週期

1 新建 當乙個執行緒ticktthread1 thread1 new ticktthread1 視窗1 ticket 被new 出來的時候。執行緒就是乙個新建的狀態。2 就緒狀態 當呼叫了start 方法之後。進入就緒狀態。就緒狀態是什麼狀態 某乙個時刻cpu 只能處理乙個執行緒的事物。把時間片分...

java多執行緒 執行緒生命週期

本節目標 了解執行緒的宣告週期 了解執行緒的停止操作 乙個新的執行緒建立之後,通過start 方法進入執行狀態,在執行狀態時可以使用yield 進行執行緒禮讓,但是仍然可以執行,使用wait 方法暫停乙個執行緒。suspend resume stop 都會產生死鎖問題,不建議使用。如果想讓執行緒停止...