程序中的多線(xiàn)程是并發(fā)執(zhí)行的,但這只是宏觀(guān)現(xiàn)象。對(duì)于大多數(shù)計(jì)算機(jī)而言,CPU只有一個(gè),在某個(gè)特定的時(shí)刻只能執(zhí)行一條機(jī)器指令,多線(xiàn)程的每個(gè)線(xiàn)程只有得到CPU的使用權(quán)才能執(zhí)行指令。Java虛擬機(jī)按照特定機(jī)制為多個(gè)線(xiàn)程分配CPU的使用權(quán)就是線(xiàn)程的調(diào)度。查看全文>>
任何對(duì)象都有生命周期,線(xiàn)程也不例外,它也有自己的生命周期。線(xiàn)程的整個(gè)生命周期分為六個(gè)階段,分別是新建狀態(tài)(New)、可運(yùn)行狀態(tài)(Runnable)、運(yùn)行狀態(tài)(Running)、阻塞狀態(tài)(Blocked)、等待狀態(tài)(Waiting)和死亡狀態(tài)(Terminated),線(xiàn)程的不同狀態(tài)表明了線(xiàn)程當(dāng)前正在進(jìn)行的活動(dòng)(有些地方把等待狀態(tài)分為兩種,加了一個(gè)定時(shí)等待Timed-Waiting)。查看全文>>
Java中只支持單繼承,一個(gè)類(lèi)一旦有了父類(lèi)就無(wú)法再繼承其它類(lèi)。比如學(xué)生類(lèi)Dog繼承了Animal類(lèi),這時(shí)由于單繼承的局限性,導(dǎo)致Dog類(lèi)無(wú)法通過(guò)繼承Thread類(lèi)創(chuàng)建線(xiàn)程。查看全文>>
在Java中,實(shí)現(xiàn)多線(xiàn)程操作有兩種方式,一種是繼承java.lang包下的Thread類(lèi),覆寫(xiě)Thread類(lèi)的run()方法,在run()方法中實(shí)現(xiàn)運(yùn)行在線(xiàn)程上的代碼。另一種就是實(shí)現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實(shí)現(xiàn)運(yùn)行在線(xiàn)程上的代碼。查看全文>>
線(xiàn)程:進(jìn)程中的一個(gè)執(zhí)行單元,負(fù)責(zé)進(jìn)程中的程序的運(yùn)行,一個(gè)進(jìn)程中至少要有一個(gè)線(xiàn)程。一個(gè)進(jìn)程中可以有多個(gè)線(xiàn)程的,這個(gè)應(yīng)用程序也可以稱(chēng)之為多線(xiàn)程程序。查看全文>>