并发基础篇(二):Thread类的API总结
生活随笔
收集整理的這篇文章主要介紹了
并发基础篇(二):Thread类的API总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Thread 類是java中的線程類,提供給用戶用于創建、操作線程、獲取線程的信息的類。是java線程一切的基礎,掌握這個類是非常必須的,先來看一下它的API.
1、字段摘要
| static int MIN_PRIORITY | 線程可以具有的最低優先級 |
| static int NORM_PRIORITY | 分配給線程的默認優先級 |
2、構造方法摘要
| Thread(Runnable target) : | 分配新的 Thread 對象。 |
| Thread(Runnable target, String name) : | 分配新的 Thread 對象。 |
| Thread(String name) : | 分配新的 Thread 對象。參數是線程名稱 |
| Thread(ThreadGroup group, Runnable target): | 分配新的 Thread 對象。 |
| Thread(ThreadGroup group, Runnable target, String name) : | 分配新的 Thread 對象,以便將 target 作為其運行對象,將指定的 name 作為其名稱,并作為 group 所引用的線程組的一員。 |
| Thread(ThreadGroup group, Runnable target, String name, long stackSize): | 分配新的 Thread 對象,以便將 target 作為其運行對象,將指定的 name 作為其名稱,作為 group 所引用的線程組的一員,并具有指定的堆棧大小。 |
| Thread(ThreadGroup group, String name) : | 分配新的 Thread 對象。 |
注意:
??線程組(ThreadGroup )已經算是過時的,被拋棄的了,所以不需要去研究線程組,僅僅知道有這個存在就可以了。按照《java編程思想》的說法,線程組一次不成功的嘗試
??
3、方法摘要
3.1、靜態方法
| static int activeCount(): | 返回當前線程的線程組中活動線程的數目。 |
| static boolean interrupted(): | 測試當前線程是否已經中斷。 |
| static void sleep(long millis): | 在指定的毫秒數內讓當前正在執行的線程休眠(暫停執行),此操作受到系統計時器和調度程序精度和準確性的影響。 |
| static void sleep(long millis, int nanos): | 在指定的毫秒數加指定的納秒數內讓當前正在執行的線程休眠(暫停執行),此操作受到系統計時器和調度程序精度和準確性的影響。 |
| static void yield(): | 暫停當前正在執行的線程對象,并執行其他線程。 |
| static boolean holdsLock(Object obj): | 當且僅當當前線程在指定的對象上保持監視器鎖時,才返回 true。 |
| static void dumpStack(): | 將當前線程的堆棧跟蹤打印至標準錯誤流。 |
| static int enumerate(Thread[] tarray): | 將當前線程的線程組及其子組中的每一個活動線程復制到指定的數組中。 |
| static Map< Thread,StackTraceElement[]> getAllStackTraces(): | 返回所有活動線程的堆棧跟蹤的一個映射。 |
| static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler(): | 返回線程由于未捕獲到異常而突然終止時調用的默認處理程序。 |
| static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) | 設置當線程由于未捕獲到異常而突然終止,并且沒有為該線程定義其他處理程序時所調用的默認處理程序。 |
3.2、獲取線程的信息
| String getName(): | 返回該線程的名稱。 |
| int getPriority(): | 返回線程的優先級。 |
| Thread.State getState(): | 返回該線程的狀態。 |
| ThreadGroup getThreadGroup(): | 返回該線程所屬的線程組。 |
| ClassLoader getContextClassLoader(): | 返回該線程的上下文 ClassLoader。 |
| StackTraceElement[] getStackTrace(): | 返回一個表示該線程堆棧轉儲的堆棧跟蹤元素數組。 |
| Thread.UncaughtExceptionHandler getUncaughtExceptionHandler(): | 返回該線程由于未捕獲到異常而突然終止時調用的處理程序。 |
3.3、線程的其他操作
| void interrupt(): | 中斷線程。 |
| boolean isInterrupted(): | 測試線程是否已經中斷。 |
| boolean isAlive(): | 測試線程是否處于活動狀態。 |
| boolean isDaemon(): | 測試該線程是否為守護線程。即后臺線程 |
| void setName(String name): | 改變線程名稱,使之與參數 name 相同。 |
| void setPriority(int newPriority): | 更改線程的優先級。 |
| void setDaemon(boolean on): | 將該線程標記為守護線程或用戶線程。又叫后臺線程(是后臺提供一種通用的服務線程) |
| void setContextClassLoader(ClassLoader cl): | 設置該線程的上下文 ClassLoader。 |
| void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh): | 設置該線程由于未捕獲到異常而突然終止時調用的處理程序。 |
| void join(): | 等待該線程終止。 |
| void join(long millis): | 等待該線程終止的時間最長為 millis 毫秒。 |
| void join(long millis, int nanos): | 等待該線程終止的時間最長為 millis 毫秒 + nanos 納秒。 |
| void start(): | 使該線程開始執行;Java 虛擬機調用該線程的 run 方法。 |
| String toString(): | 返回該線程的字符串表示形式,包括線程名稱、優先級和線程組。 |
這篇文章主要是對于線程的一些常用的api的總結,可以收藏起來需要的時候回憶或者看看。
文章有不當之處,歡迎指正,你也可以關注我的微信公眾號:好好學java,獲取優質學習資源。
總結
以上是生活随笔為你收集整理的并发基础篇(二):Thread类的API总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 集合系列10: HashMap
- 下一篇: 并发基础(三): java线程优先级小试