Java并發(fā)編程總結(jié)01_線程基礎(chǔ)

1.什么是線程?

現(xiàn)代操作系統(tǒng)調(diào)度的最小單元是線程,在一個(gè)進(jìn)程里面可以創(chuàng)建多個(gè)線程,這些線程都有各自的計(jì)數(shù)器、堆棧和局部變量等屬性,并且能夠訪問共享的內(nèi)存變量,處理器在這些線程上高速切換,讓使用者感覺到這些線程在同時(shí)執(zhí)行

2.多線程的好處?

1.更多的處理器核心

2.更快的響應(yīng)時(shí)間,異步任務(wù)并行執(zhí)行

3.更好的編程模型

3.線程的狀態(tài)

NEW:初始狀態(tài),線程被構(gòu)建,但是還沒有調(diào)用start()

RUNNABLE:運(yùn)行狀態(tài),Java線程將操作系統(tǒng)中的就緒和運(yùn)行兩種狀態(tài)統(tǒng)稱成為運(yùn)行中

BLOCKED:阻塞狀態(tài),表示線程阻塞于鎖

WAITING:等待狀態(tài),表示線程進(jìn)入等待狀態(tài),進(jìn)入該狀態(tài)表示當(dāng)前線程需要等待其他線程做出的一些特定動(dòng)作

TIME_WAITING:超時(shí)等待狀態(tài),該狀態(tài)不同于WAITING的是它是可以在指定的時(shí)間自行返回的

TREMINATED:終止?fàn)顟B(tài),表示當(dāng)前線程已經(jīng)執(zhí)行完畢


Java線程狀態(tài)變化

4.守護(hù)線程

守護(hù)線程是一種支持性的線程,因?yàn)樗饕挥米鞒绦蛑泻笈_調(diào)度以及支持性工作。

當(dāng)一個(gè)JVM中不存在非Daemon線程的時(shí)侯,JVM將會(huì)退出

可以通過 Thread.setDaemon(true) 將線程設(shè)置為Daemon線程

5.線程的創(chuàng)建、啟動(dòng)、中斷

創(chuàng)建:線程對象的構(gòu)建,Java中的線程于Thread對象一一對應(yīng)

啟動(dòng):調(diào)用線程對象的statrt()

中斷:中斷可以理解為線程的一個(gè)標(biāo)識位屬性,它表示一個(gè)運(yùn)行中間線程是否被其他線程進(jìn)行了中斷操作,中斷好比其他線程對該線程打了個(gè)招呼,其他線程通過調(diào)用該線程的interrupt()方法對其進(jìn)行中斷。









最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容