Java多線程的常用方法主要包括以下幾種:
- Thread類的start()方法:此方法用于啟動新線程,執(zhí)行run()方法中的代碼。需要注意的是,start()方法只能被調(diào)用一次,否則會拋出IllegalThreadStateException異常。
- Thread類的run()方法:當調(diào)用線程對象的start()方法時,會創(chuàng)建一個新的線程并執(zhí)行該線程中的run()方法。run()方法中放置的是線程要執(zhí)行的代碼。
- Thread類的sleep(long millis)方法:此方法用于使當前線程暫停執(zhí)行(即進入阻塞狀態(tài))指定的時間,以“減慢線程”。需要注意的是,sleep()方法不會釋放任何鎖資源。
- Thread類的interrupt()方法:此方法用于中斷線程。如果線程在sleep()、wait()或join()方法中被阻塞,那么調(diào)用interrupt()方法可以中斷線程。此外,如果線程在執(zhí)行過程中執(zhí)行了某些不可中斷的操作(如System.exit()),那么interrupt()方法將無法中斷線程。
- Thread類的isAlive()方法:此方法用于判斷線程是否處于活動狀態(tài)。如果線程處于活動狀態(tài),則返回true;否則返回false。
- Thread類的getName()和setName(String name)方法:getName()方法用于獲取線程的名稱,setName(String name)方法用于設(shè)置線程的名稱。這兩個方法通常用于調(diào)試和日志記錄。
- Thread類的currentThread()方法:此方法用于獲取當前正在執(zhí)行的線程對象。
- Thread類的setPriority(int priority)和getPriority()方法:setPriority(int priority)方法用于設(shè)置線程的優(yōu)先級,getPriority()方法用于獲取線程的當前優(yōu)先級。這兩個方法通常用于調(diào)整線程的執(zhí)行優(yōu)先級。
- Thread類的setDaemon(boolean on)和isDaemon()方法:setDaemon(boolean on)方法用于設(shè)置線程為守護線程或用戶線程,isDaemon()方法用于判斷線程是否為守護線程。需要注意的是,守護線程會隨著主線程的結(jié)束而結(jié)束執(zhí)行,而用戶線程則會一直執(zhí)行到結(jié)束。
除了以上常用方法外,Java多線程還提供了一些其他有用的方法,如ThreadGroup類的方法(用于將多個線程組織成一個線程組)、Callable接口和Future接口(用于異步執(zhí)行任務(wù)并獲取結(jié)果)等。