av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語(yǔ)言

java線程的幾種狀態(tài)

時(shí)間:2025-02-28 05:19:41 小花 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

java線程的幾種狀態(tài)

  導(dǎo)語(yǔ):線程,有時(shí)被稱為輕量級(jí)進(jìn)程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。下面是Java線程的介紹,歡迎參考!

  java線程的幾種狀態(tài)1

  新建:new一個(gè)Thread對(duì)象或者其子類對(duì)象就是創(chuàng)建一個(gè)線程,當(dāng)一個(gè)線程對(duì)象被創(chuàng)建,但是沒有開啟,這個(gè)時(shí)候,

  只是對(duì)象線程對(duì)象開辟了內(nèi)存空間和初始化數(shù)據(jù)。

  就緒:新建的對(duì)象調(diào)用start方法,就開啟了線程,線程就到了就緒狀態(tài)。

  在這個(gè)狀態(tài)的`線程對(duì)象,具有執(zhí)行資格,沒有執(zhí)行權(quán)。

  運(yùn)行:當(dāng)線程對(duì)象獲取到了CPU的資源。

  在這個(gè)狀態(tài)的線程對(duì)象,既有執(zhí)行資格,也有執(zhí)行權(quán)。

  凍結(jié):運(yùn)行過程中的線程由于某些原因(比如wait,sleep),釋放了執(zhí)行資格和執(zhí)行權(quán)。

  當(dāng)然,他們可以回到運(yùn)行狀態(tài)。只不過,不是直接回到。

  而是先回到就緒狀態(tài)。

  死亡:當(dāng)線程對(duì)象調(diào)用的run方法結(jié)束,或者直接調(diào)用stop方法,就讓線程對(duì)象死亡,在內(nèi)存中變成了垃圾。

  java線程的幾種狀態(tài)2

  先說結(jié)論:

  Java線程中一共有6種狀態(tài),分別為:NEW、RUNNABLE、WAITING、TIMED_WAITING、BLOCKED、TERMINATED,其中RUNNABLE包含READY和RUNNING狀態(tài),詳情可見下圖:  

  NEW:new一個(gè)Thread對(duì)象,但沒有調(diào)用start方法前,線程處于初始狀態(tài)

  RUNNABLE:在Java中包括兩種狀態(tài),RUNNING和READY

  READY:就緒態(tài),該狀態(tài)下的線程已經(jīng)獲得執(zhí)行所需的所有資源,只要CPU分配執(zhí)行權(quán)就能運(yùn)行;所有就緒態(tài)的線程存放在就緒隊(duì)列中

  RUNNING:獲得cpu時(shí)間片,正在執(zhí)行的線程;由于每個(gè)cpu同一時(shí)刻只能執(zhí)行一條線程,因此每個(gè)cpu每個(gè)時(shí)刻只有一條線程運(yùn)行。

  BLOCKED:阻塞態(tài),當(dāng)線程請(qǐng)求鎖失敗時(shí),就會(huì)進(jìn)入阻塞態(tài),一旦請(qǐng)求成功就會(huì)進(jìn)入就緒隊(duì)列等待cpu調(diào)度;所有阻塞態(tài)的'線程存放在阻塞隊(duì)列中

  WAITING:等待態(tài),當(dāng)運(yùn)行中的線程調(diào)用wait、join、park函數(shù)時(shí),當(dāng)前線程進(jìn)入等待態(tài);所有等待線程放入等待隊(duì)列;等待狀態(tài)的線程需要被其他線程喚醒才能繼續(xù)運(yùn)行;進(jìn)入等待狀態(tài)會(huì)釋放cpu時(shí)間片,以及資源(一般指鎖)

  TIMED_WAITING:超時(shí)等待態(tài),當(dāng)運(yùn)行中的線程調(diào)用sleep(time)、wait(time)、parkNanos、parkUtil時(shí)會(huì)進(jìn)入超時(shí)等待態(tài);和等待態(tài)的區(qū)別就是,超時(shí)之后會(huì)加入到阻塞隊(duì)列中去。

【java線程的幾種狀態(tài)】相關(guān)文章:

Java多線程的定義狀態(tài)和屬性08-23

淺談java中線程的基本概念線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系06-02

java的多線程09-09

java多線程08-31

Java多線程的線程守護(hù)例子06-08

Java線程知識(shí)筆記09-17

java多線程介紹08-23

java多線程教程11-03

什么是java主線程08-13