並發基礎(二):Thread類的API總結_並發

來源:互聯網
上載者:User

Thread 類是java中的線程類,提供給使用者用於建立、操作線程、擷取線程的資訊的類。是java線程一切的基礎,掌握這個類是非常必須的,先來看一下它的API. 1、欄位摘要 static int MAX_PRIORITY 線程可以具有的最高優先順序 static int MIN_PRIORITY 線程可以具有的最低優先順序 static int NORM_PRIORITY 分配給線程的預設優先順序 2、構造方法摘要 Thread() : 分配新的 Thread 對象。 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 Thread currentThread(): 返回對當前正在執行的線程對象的引用。 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、擷取線程的資訊 long getId(): 返回該線程的唯一識別碼。 String getName(): 返回該線程的名稱。 int getPriority(): 返回線程的優先順序。 Thread.State getState(): 返回該線程的狀態。 ThreadGroup getThreadGroup(): 返回該線程所屬的線程組。 ClassLoader getContextClassLoader(): 返回該線程的上下文 ClassLoader。 StackTraceElement[] getStackTrace(): 返回一個表示該線程堆棧轉儲的堆疊追蹤元素數組。 Thread.UncaughtExceptionHandler getUncaughtExceptionHandler(): 返回該線程由於未捕獲到異常而突然終止時調用的處理常式。 3.3、線程的其他動作 void checkAccess(): 判定當前啟動並執行線程是否有權修改該線程。 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(): 返回該線程的字串表示形式,包括線程名稱、優先順序和線程組。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.