更新時間:2022-11-28 10:35:38 來源:動力節(jié)點 瀏覽909次
在 Java 中,Thread 類包含多個用于為任務(wù)創(chuàng)建線程的構(gòu)造函數(shù)和用于控制線程的方法。它是在 java.lang 默認(rèn)包中聲明的預(yù)定義類。
Java中的每個線程都是由 Thread 類的唯一對象創(chuàng)建和控制的。thread 的一個對象控制著一個在JVM 下運行的線程。
Thread 類包含各種方法,可用于啟動、控制、中斷線程的執(zhí)行,以及程序中許多其他與線程相關(guān)的活動。
Thread 類擴展了Java Object 類,它實現(xiàn)了 Runnable 接口。線程類的聲明如下:
公共類線程
擴展對象
實現(xiàn) Runnable
請看下圖,它顯示了 Java Thread 類的類圖。
線程類的各種構(gòu)造函數(shù)在java.lang包中定義,可用于創(chuàng)建線程對象如下:
1. Thread():這是一個基本的默認(rèn)構(gòu)造函數(shù),沒有參數(shù)。它只是創(chuàng)建一個 Thread 類的對象。
2. Thread(String name) :它為線程創(chuàng)建一個具有指定名稱的新線程對象。
3. Thread(Runnable r):它通過將參數(shù)r作為對實現(xiàn)Runnable接口的類的對象的引用來創(chuàng)建線程對象。
4. Thread(Runnable r, String name):該構(gòu)造函數(shù)通過傳遞兩個參數(shù) r 和 name 創(chuàng)建一個線程對象。這里,變量 r 是實現(xiàn) Runnable 接口的類對象的引用。
Thread類提供了各種靜態(tài)方法,如下:
1. currentThread(): currentThread() 返回當(dāng)前執(zhí)行線程的引用。由于這是一個靜態(tài)方法,所以我們可以直接使用類名來調(diào)用它。currentThread() 的一般語法如下:
句法:
公共靜態(tài)線程 currentThread()
2. sleep(): sleep() 方法使當(dāng)前正在執(zhí)行的線程休眠指定的毫秒數(shù)。此方法用于將當(dāng)前線程暫停指定的時間量(以毫秒為單位)。
由于這個方法是靜態(tài)的,所以我們可以通過Thread類名來訪問它。該方法的一般語法如下:
句法:
public static void sleep(long milliseconds) 拋出 InterruptedException
重載版本的 sleep 方法的一般語法如下:
句法:
public static void sleep(long milliseconds, int nanoseconds) throw InterruptedException
sleep() 方法的重載版本用于以毫秒和納秒為單位暫停指定的時間段。這兩種方法都會拋出 InterruptedException,并且必須在 Java try-catch 塊中使用。
3. yield(): yield() 方法暫停當(dāng)前線程的執(zhí)行,并允許等待執(zhí)行的具有相同或更高優(yōu)先級的另一個線程執(zhí)行。當(dāng)前正在執(zhí)行的線程放棄CPU的控制權(quán)。yield() 方法的一般形式如下:
句法:
公共靜態(tài)無效產(chǎn)量()
4. activeCount():該方法返回活動線程數(shù)。
句法:
公共靜態(tài) int activeCount()
由于這個方法是靜態(tài)的,所以可以通過Thread類名來訪問。它不接受任何東西。
Thread類的實例方法如下:
1.start(): start()方法用于通過調(diào)用線程的run()方法來啟動線程的執(zhí)行。JVM 在線程上調(diào)用 run() 方法。start() 方法的一般語法如下:
句法:
公共無效開始()
2.run(): run() 方法使線程進入運行狀態(tài)。它僅在 start() 方法執(zhí)行后執(zhí)行。一般語法如下:
句法:
公共無效運行()
3.getName():該方法返回線程的名稱。該方法的返回類型為字符串。這種方法的一般形式是:
句法:
公共最終字符串 getName()
4.setName():該方法用于設(shè)置線程的名稱。它接受一個 String 類型的參數(shù)。它什么都不返回。
句法:
public final void setName(字符串名稱)
5.getPriority():該方法返回線程的優(yōu)先級。它以 1 到 10 之間的整數(shù)值的形式返回優(yōu)先級。最大優(yōu)先級為 10,最小優(yōu)先級為 1,正常優(yōu)先級為 5。
句法:
public final int getPriority() // 返回類型是一個整數(shù)。
6.setPriority():該方法用于設(shè)置線程的優(yōu)先級。它接受一個整數(shù)值作為參數(shù)。一般語法如下:
句法:
公共最終無效 setPriority(int newPriority)
7.isAlive():該方法用于檢查線程是否存活。它返回一個布爾值(true 或 false),指示線程是否正在運行。isAlive() 方法是最終的和本機的。isAlive() 方法的一般語法如下:
句法:
public final native boolean isAlive()
8.join(): join()方法用于讓一個線程等待另一個線程終止它的進程。一般語法是
句法:
public final void join() throw InterruptedException
此方法拋出 InterruptedException 并且必須在 try-catch 塊中使用。
9.stop ():該方法用于停止線程。該方法的一般形式如下:
句法:
公共最終無效停止()
此方法既不接受任何內(nèi)容也不返回任何內(nèi)容。
10.suspend(): suspend()方法用于掛起或暫停一個線程。
句法:
公共最終無效暫停()
11.resume ():該方法用于恢復(fù)掛起的線程。它既不接受任何東西也不返回任何東西。
句法:
公共最終無效簡歷()
12.isDaemon():該方法用于檢查線程是否為守護線程。
句法:
公共最終布爾值 isDaemon()
以上就是關(guān)于“關(guān)于thread類的方法介紹”,在本站的Java多線程教程中還有更多有趣的多線程知識等你來學(xué)哦。
初級 202925
初級 203221
初級 202629
初級 203743