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