欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于java 線程的幾種狀態(tài)(詳解)

 更新時(shí)間:2017年09月10日 08:50:51   投稿:jingxian  
下面小編就為大家?guī)硪黄趈ava 線程的幾種狀態(tài)(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就想給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

線程可以有六種狀態(tài):

  1.New(新創(chuàng)建)

  2.Runnable(可運(yùn)行)(運(yùn)行)

  3.Blocked(被阻塞)

  4.Waiting(等待)

  5.Timed waiting(計(jì)時(shí)等待)

  6.Terminated(被終止)

新創(chuàng)建線程:

  當(dāng)用new操作符創(chuàng)建一個(gè)新線程時(shí),如new Thread(r),該線程還沒有開始運(yùn)行,它的當(dāng)前狀態(tài)為new,在線程運(yùn)行之前還有一些基礎(chǔ)工作要做。

可運(yùn)行線程:

  一旦線程調(diào)用start方法,線程處于runnable狀態(tài)。在這個(gè)狀態(tài)下的線程可能正在運(yùn)行也可能沒有運(yùn)行(也就是說Java規(guī)范中正在運(yùn)行的線程仍然處于可運(yùn)行狀態(tài))。在線程運(yùn)行之后或者從阻塞、等待或睡眠狀態(tài)回來后,也返回到可運(yùn)行狀態(tài)。

被阻塞線程:

  這個(gè)狀態(tài)下, 是在多個(gè)線程有同步操作的場景, 比如正在等待另一個(gè)線程的synchronized 塊的執(zhí)行釋放, 或者可重入的 synchronized塊里別人調(diào)用wait() 方法, 也就是線程在等待進(jìn)入臨界區(qū)。

等待線程:

  這個(gè)狀態(tài)下是指線程擁有了某個(gè)鎖之后, 調(diào)用了它的wait方法,或者線程調(diào)用了join方法 join了另外的線程, 等待被他join的線程執(zhí)行結(jié)束的狀態(tài)。這里要區(qū)分阻塞狀態(tài) 和等待狀態(tài)的區(qū)別, 一個(gè)是在臨界點(diǎn)外面等待進(jìn)入, 一個(gè)是在臨界點(diǎn)里面wait。

計(jì)時(shí)等待線程:

  當(dāng)線程調(diào)用帶有超時(shí)參數(shù)的方法時(shí)會(huì)導(dǎo)致線程進(jìn)入計(jì)時(shí)等待狀態(tài),帶有超市參數(shù)的方法有Thread.sleep、Object.wait、Thread.join、Lock.tryLock以及Condition.await的計(jì)時(shí)版。

被終止的線程:

  1)線程因?yàn)閞un方法正常退出而自然死亡。

  2)因?yàn)橐粋€(gè)沒有捕獲的異常終止了run方法而意外死亡。

  線程狀態(tài)之間的轉(zhuǎn)換:

           

以上這篇基于java 線程的幾種狀態(tài)(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis?plus配置自動(dòng)create_time和update_time方式

    mybatis?plus配置自動(dòng)create_time和update_time方式

    在處理數(shù)據(jù)時(shí),注意時(shí)間類型的轉(zhuǎn)換非常重要,不同編程環(huán)境和數(shù)據(jù)庫對時(shí)間數(shù)據(jù)的處理方式各異,因此在數(shù)據(jù)遷移或日常處理中需謹(jǐn)慎處理時(shí)間格式,個(gè)人經(jīng)驗(yàn)表明,了解常用的時(shí)間轉(zhuǎn)換函數(shù)和方法能有效避免錯(cuò)誤,提高工作效率,希望這些經(jīng)驗(yàn)?zāi)転榇蠹規(guī)韼椭?/div> 2024-09-09
  • SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式實(shí)例

    SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式實(shí)例

    最近在項(xiàng)目開發(fā)中,需要為一個(gè)使用MySQL數(shù)據(jù)庫的SpringBoot項(xiàng)目,新添加一個(gè)PLSQL數(shù)據(jù)庫數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2022-04-04
  • Kotlin 內(nèi)聯(lián)函數(shù)詳解及實(shí)例

    Kotlin 內(nèi)聯(lián)函數(shù)詳解及實(shí)例

    這篇文章主要介紹了Kotlin 內(nèi)聯(lián)函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java異步線程中的CompletableFuture與@Async詳解

    Java異步線程中的CompletableFuture與@Async詳解

    這篇文章主要介紹了Java異步線程中的CompletableFuture與@Async詳解,CompletableFuture是java中提供的一個(gè)異步執(zhí)行類,@Async是Spring提供的異步執(zhí)行方法,當(dāng)調(diào)用方法單獨(dú)開啟一個(gè)線程進(jìn)行調(diào)用,需要的朋友可以參考下
    2024-01-01
  • Java+Swing實(shí)現(xiàn)中國象棋游戲

    Java+Swing實(shí)現(xiàn)中國象棋游戲

    這篇文章將通過Java+Swing實(shí)現(xiàn)經(jīng)典的中國象棋游戲。文中可以實(shí)現(xiàn)開始游戲,悔棋,退出等功能。感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試
    2022-02-02
  • java.text.DecimalFormat用法詳解

    java.text.DecimalFormat用法詳解

    這篇文章主要為大家詳細(xì)介紹了java.text.DecimalFormat用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn)代碼

    Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java中的CopyOnWriteArrayList解析

    Java中的CopyOnWriteArrayList解析

    這篇文章主要介紹了Java中的CopyOnWriteArrayList解析,ArrayList是非線程安全的,也就是說在多個(gè)線程下進(jìn)行讀寫,會(huì)出現(xiàn)異常,既然是非線程安全,那我們就使用一些機(jī)制把它變安全不就好了,需要的朋友可以參考下
    2023-12-12
  • @insert mybatis踩坑記錄,實(shí)體接收前端傳遞的參數(shù)

    @insert mybatis踩坑記錄,實(shí)體接收前端傳遞的參數(shù)

    這篇文章主要介紹了@insert mybatis踩坑記錄,實(shí)體接收前端傳遞的參數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解Struts2中json 相互引用死循環(huán)解決辦法

    詳解Struts2中json 相互引用死循環(huán)解決辦法

    本篇文章主要介紹詳解Struts2中json 相互引用死循環(huán)解決辦法,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01

最新評(píng)論