成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

談?wù)勀銓?duì)Java線程5種狀態(tài)流轉(zhuǎn)原理的理解

開(kāi)發(fā) 前端
舉個(gè)通俗一點(diǎn)的例子來(lái)解釋五種狀態(tài),比如我們平時(shí)去商場(chǎng)上廁所,準(zhǔn)備去上廁所就是新建狀態(tài)(new),上廁所要排隊(duì),排隊(duì)就是就緒狀態(tài)(Runnable),有坑位了,輪到你了,蹲坑就是運(yùn)行狀態(tài)(Running),蹲完坑發(fā)現(xiàn)沒(méi)有手紙,需要等待其他人送紙過(guò)來(lái),這個(gè)狀態(tài)就是阻塞(Blocked),等上完廁所出來(lái),上廁所這件事情結(jié)束了線程也就不存在了,就是死亡狀態(tài)。

?1、線程定義

回答線程流轉(zhuǎn)原理這個(gè)問(wèn)題之前,我們先來(lái)回憶一下JDK中3種自定義線程的方式以及它們的優(yōu)缺點(diǎn)。

圖片

第1種:是繼承Thread類。如代碼所示:

public class MyThread extends Thread{
public void run(){
// to do something
}
}

這種方式的優(yōu)點(diǎn)是:實(shí)現(xiàn)簡(jiǎn)單,只需實(shí)例化繼承類的實(shí)例,即可使用線程。

它的缺點(diǎn)是:擴(kuò)展性不足,Java是單繼承的語(yǔ)言,如果一個(gè)類已經(jīng)繼承了其他類,就無(wú)法通過(guò)這種方式實(shí)現(xiàn)自定義線程

圖片

第2種:是實(shí)現(xiàn) Runnable 接口,如代碼所示:

public class MyThread implements Runable{
public void run(){
// to do something
}
}

它的優(yōu)點(diǎn)是:擴(kuò)展性好,可以在此基礎(chǔ)上繼承其他類,非常適合多線程處理一份資源的場(chǎng)景

它的缺點(diǎn)是:構(gòu)造線程實(shí)例的過(guò)程相對(duì)繁瑣一點(diǎn)

圖片

第3種:是實(shí)現(xiàn)Callable接口,如代碼所示:

public class MyThread implements Callable<String>{
public String call() throws Exception{
// to do something
return null;
}
}

它的優(yōu)點(diǎn)是:擴(kuò)展性好,能支持回調(diào)并得到返回值,而且可以拋出受檢查異常。

它的缺點(diǎn)是:相較于實(shí)現(xiàn)Runnable接口的方式,調(diào)用過(guò)程較為繁瑣。

2、線程狀態(tài)流轉(zhuǎn)原理

首先來(lái)看這樣一張圖,它涵蓋了Java 中多線程各重要知識(shí)點(diǎn)。如果掌握了此圖,Java 中的多線程也就基本上掌握了。

圖片

從圖中可以看出,線程狀態(tài)的流轉(zhuǎn),一共包括以下 5 種情形:

圖片

(1)新建狀態(tài)(New): 線程對(duì)象創(chuàng)建后,就進(jìn)入了新建狀態(tài)。例如,Thread thread = new Thread()。

圖片

圖片

(2)就緒狀態(tài)(Runnable): 也被稱為“可執(zhí)行狀態(tài)”。線程對(duì)象被創(chuàng)建后,其它線程調(diào)用了線程的start()方法,從而來(lái)啟動(dòng)該線程。這個(gè)時(shí)候,線程處于就緒狀態(tài),它隨時(shí)可能被CPU調(diào)度執(zhí)行。

圖片

圖片

(3)運(yùn)行狀態(tài)(Running): 是指線程獲取CPU資源后,正在運(yùn)行。需要注意的是,線程只能從就緒狀態(tài)進(jìn)入到運(yùn)行狀態(tài)。

圖片

圖片

(4)阻塞狀態(tài)(Blocked): 是指線程因?yàn)槟撤N原因放棄CPU使用權(quán),暫時(shí)停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會(huì)轉(zhuǎn)到運(yùn)行狀態(tài)。

那么,阻塞又分為三種情況:

1) 等待阻塞,指通過(guò)調(diào)用線程的wait()方法,讓線程等待。

2) 同步阻塞 ,指線程在獲取synchronized同步鎖時(shí),因?yàn)殒i被其它線程所占用而導(dǎo)致獲取失敗,會(huì)進(jìn)入同步阻塞狀態(tài)。

3) 其他阻塞,是指通過(guò)調(diào)用線程的sleep()方法 或者 join()方法 又或者 發(fā)出了I/O請(qǐng)求的時(shí)候,線程會(huì)進(jìn)入到阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時(shí)、join()等待線程終止或者超時(shí)、或者I/O處理完畢時(shí),線程重新轉(zhuǎn)入就緒狀態(tài)。

圖片

圖片

(5)死亡狀態(tài)(Dead): 是指線程執(zhí)行完畢或者因異常退出了run()方法,線程結(jié)束生命周期。

圖片

圖片

舉個(gè)通俗一點(diǎn)的例子來(lái)解釋上面五種狀態(tài),比如我們平時(shí)去商場(chǎng)上廁所,準(zhǔn)備去上廁所就是新建狀態(tài)(new),上廁所要排隊(duì),排隊(duì)就是就緒狀態(tài)(Runnable),有坑位了,輪到你了,蹲坑就是運(yùn)行狀態(tài)(Running),蹲完坑發(fā)現(xiàn)沒(méi)有手紙,需要等待其他人送紙過(guò)來(lái),這個(gè)狀態(tài)就是阻塞(Blocked),等上完廁所出來(lái),上廁所這件事情結(jié)束了線程也就不存在了,就是死亡狀態(tài)。

需要注意的是:便秘也是阻塞狀態(tài),你便秘太久,其他人會(huì)等不及,可能會(huì)把你趕走,這個(gè)就是掛起。還有一種情況就是,如果你便秘占坑位太久,其他人跟你說(shuō),先出去醞釀一下,5分鐘后再過(guò)來(lái)蹲坑,這就叫睡眠。

好了,以上就是我對(duì)線程狀態(tài)流轉(zhuǎn)原理的理解。

責(zé)任編輯:武曉燕 來(lái)源: Tom彈架構(gòu)
相關(guān)推薦

2022-08-14 07:14:50

Kafka零拷貝

2023-11-28 12:25:02

多線程安全

2022-06-30 09:10:33

NoSQLHBaseRedis

2022-09-06 11:13:16

接口PipelineHandler

2022-09-23 11:00:27

KafkaZookeeper機(jī)制

2025-02-21 15:25:54

虛擬線程輕量級(jí)

2022-08-26 00:02:03

RocketMQ單體架構(gòu)MQ

2022-09-19 07:57:59

云服務(wù)互聯(lián)網(wǎng)基礎(chǔ)設(shè)施

2024-09-20 05:46:00

2024-09-11 16:49:55

2024-09-02 16:10:19

vue2前端

2022-10-09 15:18:31

SwaggerOpenAPI工具

2024-05-31 08:10:58

Netty線程模型多路復(fù)用模型

2022-09-09 10:15:06

OAuthJava

2022-03-21 09:05:18

volatileCPUJava

2024-10-24 16:14:43

數(shù)據(jù)傳輸CPU零拷貝

2022-08-26 00:21:44

IO模型線程

2025-03-21 00:00:05

Reactor設(shè)計(jì)模式I/O 機(jī)制

2024-12-06 14:34:00

Spring過(guò)濾器

2025-03-07 00:11:00

JWTJSONSession
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩成人在线观看 | 九九九国产 | 二区在线视频 | 91免费福利视频 | chinese中国真实乱对白 | www.日本在线播放 | 一级片免费视频 | 这里有精品 | 91福利在线观看视频 | 国产精品99久久久久久宅男 | 97精品超碰一区二区三区 | 国产99久久精品一区二区永久免费 | 北条麻妃99精品青青久久 | 一区二区三区高清不卡 | 成人av电影在线观看 | 亚洲精品久 | 亚洲精品第一页 | 91视视频在线观看入口直接观看 | 二区中文字幕 | 欧美视频二区 | 亚洲三区在线 | 欧美日韩一区二区三区四区 | 亚洲一本 | 精品一区二区电影 | 午夜免费在线电影 | 国产美女精品视频免费观看 | 玖玖久久 | 免费一级黄色电影 | 日本天堂视频在线观看 | 免费小视频在线观看 | 美美女高清毛片视频免费观看 | 国产福利在线播放 | 先锋资源站 | 日韩伦理电影免费在线观看 | 五月婷婷婷| 国产精品高潮呻吟久久aⅴ码 | 91高清免费观看 | 国产成人一区二区三区久久久 | 国产中文字幕网 | 国产激情亚洲 | 欧美成ee人免费视频 |