新聞中心
Java中Thread類(lèi)簡(jiǎn)介
Java中的Thread類(lèi)是java.lang包中的一個(gè)類(lèi),它表示應(yīng)用程序中的一個(gè)執(zhí)行線程,一個(gè)Java程序可以包含多個(gè)線程,這些線程可以并發(fā)執(zhí)行,從而提高程序的執(zhí)行效率,Thread類(lèi)提供了一些方法來(lái)控制和管理線程,例如啟動(dòng)線程、停止線程、優(yōu)先級(jí)設(shè)置等。

Thread類(lèi)的主要方法
1、構(gòu)造方法
Thread類(lèi)有兩個(gè)構(gòu)造方法:
(1)無(wú)參構(gòu)造方法:默認(rèn)創(chuàng)建一個(gè)daemon線程。
public Thread() { ... }
(2)有參構(gòu)造方法:接收一個(gè)Runnable對(duì)象作為參數(shù),用于指定線程要執(zhí)行的任務(wù)。
public Thread(Runnable target) { ... }
2、start()方法
start()方法用于啟動(dòng)線程,當(dāng)調(diào)用start()方法時(shí),線程會(huì)從run()方法開(kāi)始執(zhí)行,如果當(dāng)前線程已經(jīng)處于運(yùn)行狀態(tài),那么start()方法不會(huì)有任何效果。
public void start() { ... }
3、run()方法
run()方法是線程的入口點(diǎn),每個(gè)線程都需要實(shí)現(xiàn)這個(gè)方法,在run()方法中,我們可以編寫(xiě)具體的業(yè)務(wù)邏輯代碼,通常情況下,我們會(huì)將run()方法的內(nèi)容封裝在一個(gè)Runnable對(duì)象中,然后通過(guò)Thread類(lèi)的構(gòu)造方法創(chuàng)建線程。
public void run() { ... }
4、join()方法
join()方法用于讓當(dāng)前線程等待另一個(gè)線程執(zhí)行完畢后再繼續(xù)執(zhí)行,join()方法接收一個(gè)long類(lèi)型的參數(shù),表示等待的最長(zhǎng)時(shí)間(以毫秒為單位),如果當(dāng)前線程在指定的時(shí)間內(nèi)沒(méi)有執(zhí)行完畢,那么它會(huì)拋出一個(gè)InterruptedException異常。
public void join(long millis) throws InterruptedException { ... }
5、sleep()方法
sleep()方法使當(dāng)前線程暫停執(zhí)行一段時(shí)間(以毫秒為單位),在這段時(shí)間內(nèi),線程不會(huì)消耗系統(tǒng)資源,sleep()方法接收一個(gè)long類(lèi)型的參數(shù),表示暫停的時(shí)間,需要注意的是,sleep()方法可能會(huì)拋出InterruptedException異常,因此需要在方法簽名中聲明。
public void sleep(long millis) throws InterruptedException { ... }
6、yield()方法
yield()方法使當(dāng)前線程暫停執(zhí)行一段時(shí)間(以毫秒為單位),并放棄CPU資源給其他線程,與sleep()方法不同的是,yield()方法不會(huì)拋出InterruptedException異常,yield()方法通常用于讓出CPU時(shí)間片,以便其他線程有機(jī)會(huì)執(zhí)行,需要注意的是,yield()方法可能對(duì)性能的影響較小,因?yàn)樗皇呛?jiǎn)單地讓出CPU時(shí)間片,而不是完全暫停線程。
public void yield() { ... }
7、setPriority()方法
setPriority()方法用于設(shè)置線程的優(yōu)先級(jí),Java中的線程優(yōu)先級(jí)分為五個(gè)級(jí)別:低優(yōu)先級(jí)(Thread.MIN_PRIORITY)、普通優(yōu)先級(jí)(Thread.NORM_PRIORITY)、高優(yōu)先級(jí)(Thread.MAX_PRIORITY)、超級(jí)高優(yōu)先級(jí)(Thread.MAX_PRIORITY),setPriority()方法接收一個(gè)int類(lèi)型的參數(shù),表示要設(shè)置的優(yōu)先級(jí),需要注意的是,setPriority()方法只能在創(chuàng)建線程之后調(diào)用,不能在join()或sleep()方法中調(diào)用,setPriority()方法可能會(huì)拋出IllegalArgumentException和SecurityException異常。
public void setPriority(int newPriority) { ... }
8、getPriority()方法
getPriority()方法用于獲取線程的當(dāng)前優(yōu)先級(jí),返回值是一個(gè)int類(lèi)型,表示線程的優(yōu)先級(jí),需要注意的是,getPriority()方法可能會(huì)拋出IllegalThreadStateException異常。
public int getPriority() { ... }
網(wǎng)頁(yè)名稱(chēng):javathread類(lèi)的方法有哪些
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/djsipog.html


咨詢
建站咨詢
