java開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到線程的問(wèn)題,比如你做一個(gè)商城,就需要考慮它的并發(fā)問(wèn)題等等,今天給大家分享一下java中線程的狀態(tài)
先說(shuō)線程的第一個(gè)狀態(tài),是新建狀態(tài),這個(gè)是線程剛剛創(chuàng)建的時(shí)候,如:
new thread(),具體如圖
線程的第二種狀態(tài)是可執(zhí)行狀態(tài),就是調(diào)用了start方法后的狀態(tài),當(dāng)然了,一個(gè)運(yùn)行的狀態(tài),他有可能是正在運(yùn)行的,也有可能是沒(méi)有運(yùn)行的,只是他的狀態(tài)是可運(yùn)行的狀態(tài),具體如圖
第三種狀態(tài)是被阻塞或者處于等待的線程,處于這種狀態(tài)下的線程是不活動(dòng)且不運(yùn)行的,比如說(shuō)調(diào)用了wait方法等都會(huì)造成等待的情況,具體如圖
第四種狀態(tài)就是被終止的狀態(tài),這種狀態(tài)和和上面的狀態(tài)不一樣,上面阻塞狀態(tài)是可以在激活的,終止之后要想在啟動(dòng),只能重新調(diào)用start方法,終止也有兩種方式,第一種是run方法的正常退出,第二種是因?yàn)闆](méi)有捕獲到異常而意外終止了,或者使用stop也可以,具體如圖
最后給大家看一個(gè)關(guān)于線程之間的關(guān)系圖,包括新建,運(yùn)行,阻塞和被終止之間的關(guān)系,具體如圖