-
線程創(chuàng)建的兩種方式
? ?繼承Thread類:
? ? ? ? class MyThread extends Thread{
? ? ? ? ? ? ? ? ? ?public? void? run(){?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '''''''''
? ? }
}
MyThread? mt = new MyThread();? //創(chuàng)建線程
mt.,start();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//啟動(dòng)線程
查看全部 -
實(shí)現(xiàn)runnable方法創(chuàng)建線程,可以多個(gè)線程類Thread創(chuàng)建實(shí)例都以同一個(gè)runnable實(shí)現(xiàn)類作構(gòu)造參數(shù)。適用于多個(gè)線程處理同一個(gè)共享資源。
查看全部 -
Runnable 除了避免單繼承的缺陷,Runnable 的代碼可以被多個(gè)線程共享
適用于多線程處理同一資源的情況
查看全部 -
三、守護(hù)線程
1、用戶線程——運(yùn)行在前臺(tái),執(zhí)行具體的任務(wù)
????????程序的主線程、連接網(wǎng)絡(luò)的子線程等都是用戶線程
2、守護(hù)線程——運(yùn)行在后臺(tái),為其它線程服務(wù)
????????特點(diǎn):當(dāng)所有的用戶線程都結(jié)束運(yùn)行,守護(hù)線程會(huì)隨JVM一起結(jié)束工作
????????應(yīng)用:數(shù)據(jù)庫連接池中的檢測(cè)線程
????????????????? ?JVM虛擬機(jī)啟動(dòng)后的監(jiān)測(cè)線程?
????????最常見的守護(hù)線程:垃圾回收線程
3、可以通過調(diào)用Thread類的setDaemon(true)方法,設(shè)置當(dāng)前線程為守護(hù)線程。注意:
?a)該方法必須在start()方法之前調(diào)用,否則會(huì)拋出IllegalThreadStateException異常。
b)在守護(hù)線程中產(chǎn)生的新線程也是守護(hù)線程。
c)不是所有的任務(wù)都可以分配給守護(hù)線程來執(zhí)行,比如讀寫操作或者計(jì)算邏輯。
查看全部 -
1、創(chuàng)建:新建一個(gè)線程對(duì)象,如Thread thd = new Thread()
2、就緒:創(chuàng)建了線程對(duì)象后,調(diào)用了線程的start()方法(注意:此時(shí)線程只是進(jìn)入了線程隊(duì)列,等待獲取CPU服務(wù),具備了運(yùn)行的條件,但并不一定已經(jīng)開始運(yùn)行了)
3、運(yùn)行:處于就緒狀態(tài)的線程,一旦獲取了CPU資源,便進(jìn)入到運(yùn)行狀態(tài),開始執(zhí)行run()方法里面的邏輯
4、終止:線程的run()方法執(zhí)行完畢,或者調(diào)用線程的stop()方法(該方法已經(jīng)廢棄),線程便進(jìn)入終止?fàn)顟B(tài)
5、阻塞:一個(gè)正在執(zhí)行的線程在某種情況下,由于某種原因而暫時(shí)讓出了CPU資源,暫停了自己的執(zhí)行,便進(jìn)入了阻塞狀態(tài),如調(diào)用了sleep()、wait()、yield()等方法
查看全部 -
創(chuàng)建->就緒->運(yùn)行->終止
阻塞
查看全部 -
設(shè)置守護(hù)線程的注意事項(xiàng)
查看全部 -
設(shè)置守護(hù)線程
查看全部 -
Java線程:守護(hù)線程
查看全部 -
Java線程:用戶線程
查看全部 -
線程的生命周期
查看全部 -
兩種創(chuàng)建多線程的方式比較
查看全部 -
創(chuàng)建線程的方式
查看全部 -
課程學(xué)習(xí)目標(biāo)
查看全部 -
Thread lifetime
查看全部
舉報(bào)