基于java 線程的幾種狀態(tài)(詳解)
線程可以有六種狀態(tài):
1.New(新創(chuàng)建)
2.Runnable(可運(yùn)行)(運(yùn)行)
3.Blocked(被阻塞)
4.Waiting(等待)
5.Timed waiting(計時等待)
6.Terminated(被終止)
新創(chuàng)建線程:
當(dāng)用new操作符創(chuàng)建一個新線程時,如new Thread(r),該線程還沒有開始運(yùn)行,它的當(dāng)前狀態(tài)為new,在線程運(yùn)行之前還有一些基礎(chǔ)工作要做。
可運(yùn)行線程:
一旦線程調(diào)用start方法,線程處于runnable狀態(tài)。在這個狀態(tài)下的線程可能正在運(yùn)行也可能沒有運(yùn)行(也就是說Java規(guī)范中正在運(yùn)行的線程仍然處于可運(yùn)行狀態(tài))。在線程運(yùn)行之后或者從阻塞、等待或睡眠狀態(tài)回來后,也返回到可運(yùn)行狀態(tài)。
被阻塞線程:
這個狀態(tài)下, 是在多個線程有同步操作的場景, 比如正在等待另一個線程的synchronized 塊的執(zhí)行釋放, 或者可重入的 synchronized塊里別人調(diào)用wait() 方法, 也就是線程在等待進(jìn)入臨界區(qū)。
等待線程:
這個狀態(tài)下是指線程擁有了某個鎖之后, 調(diào)用了它的wait方法,或者線程調(diào)用了join方法 join了另外的線程, 等待被他join的線程執(zhí)行結(jié)束的狀態(tài)。這里要區(qū)分阻塞狀態(tài) 和等待狀態(tài)的區(qū)別, 一個是在臨界點(diǎn)外面等待進(jìn)入, 一個是在臨界點(diǎn)里面wait。
計時等待線程:
當(dāng)線程調(diào)用帶有超時參數(shù)的方法時會導(dǎo)致線程進(jìn)入計時等待狀態(tài),帶有超市參數(shù)的方法有Thread.sleep、Object.wait、Thread.join、Lock.tryLock以及Condition.await的計時版。
被終止的線程:
1)線程因為run方法正常退出而自然死亡。
2)因為一個沒有捕獲的異常終止了run方法而意外死亡。
線程狀態(tài)之間的轉(zhuǎn)換:

以上這篇基于java 線程的幾種狀態(tài)(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- RxJava的消息發(fā)送和線程切換實(shí)現(xiàn)原理
- Java 實(shí)現(xiàn)多線程切換等待喚醒交替打印奇偶數(shù)
- Java線程狀態(tài)及切換、關(guān)閉線程的正確姿勢分享
- Java實(shí)現(xiàn)多線程的上下文切換
- Java實(shí)現(xiàn)監(jiān)控多個線程狀態(tài)的簡單實(shí)例
- 總結(jié)Java中線程的狀態(tài)及多線程的實(shí)現(xiàn)方式
- Java線程池運(yùn)行狀態(tài)監(jiān)控實(shí)現(xiàn)解析
- 學(xué)習(xí)Java多線程之線程定義、狀態(tài)和屬性
- Java線程的6種狀態(tài)及切換教程
相關(guān)文章
springBoot詳細(xì)講解使用mybaties案例
MyBatis本是apache的一個開源項目iBatis,2010年這個項目由apache software foundation遷移到了google code,并且改名為MyBatis。2013年11月遷移到Github。iBATIS一詞來源于“internet”和“abatis”的組合,是一個基于Java的持久層框架2022-05-05
Java設(shè)計模式之備忘錄模式(Memento模式)介紹
這篇文章主要介紹了Java設(shè)計模式之備忘錄模式(Memento模式)介紹,memento是一個保存另外一個對象內(nèi)部狀態(tài)拷貝的對象,這樣以后就可以將該對象恢復(fù)到原先保存的狀態(tài),需要的朋友可以參考下2015-03-03
一文詳解SpringMVC中的@RequestMapping注解
@RequestMapping是一個用于映射HTTP請求到處理方法的注解,在Spring框架中使用,它可以用于控制器類和處理方法上,用來指定處理不同URL路徑的請求,并定義請求的方法等,本文小編將給大家詳細(xì)的介紹一下SpringMVC中的@RequestMapping注解,需要的朋友可以參考下2023-08-08

