- Java.lang 包類
- Java.lang - 首頁
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包其他
- Java.lang - 介面
- Java.lang - 錯誤
- Java.lang - 異常
- Java.lang 包有用資源
- Java.lang - 有用資源
- Java.lang - 討論
Java 執行緒 getStackTrace() 方法
描述
Java Thread getStackTrace() 方法返回一個棧跟蹤元素陣列,表示該執行緒的棧轉儲。如果該執行緒尚未啟動或已終止,則將返回一個零長度陣列。
如果返回的陣列長度不為零,則陣列的第一個元素表示棧頂,它是序列中最新的方法呼叫。陣列的最後一個元素表示棧底,它是序列中最舊的方法呼叫。
宣告
以下是 java.lang.Thread.getStackTrace() 方法的宣告
public StackTraceElement[] getStackTrace()
引數
無
返回值
此方法返回一個 StackTraceElement 陣列,每個元素代表一個棧幀。
異常
SecurityException - 如果存在安全管理器並且其 checkPermission 方法不允許獲取執行緒的堆疊跟蹤。
示例:在單執行緒環境中獲取 StackTrace
以下示例演示了 Java Thread getStackTrace() 方法的用法。在此程式中,我們建立了一個類 ThreadDemo。在 main 方法中,呼叫 ThreadDemo 例項方法 getStackTrace(),該方法依次檢索當前執行緒並使用 getStackTrace() 獲取堆疊跟蹤並列印類名。
package com.tutorialspoint;
public class ThreadDemo {
public static void main(String[] args) {
new ThreadDemo().getStackTrace();
}
public void getStackTrace() {
System.out.println(Thread.currentThread().getStackTrace()[3].getClassName());
}
}
輸出
讓我們編譯並執行以上程式,這將產生以下結果:
com.tutorialspoint.ThreadDemo
示例:在多執行緒環境中獲取 StackTrace
以下示例演示了 Java Thread activeCount() 方法的用法。在此程式中,我們透過實現 Runnable 介面建立了一個執行緒類 ThreadDemo。在建構函式中,使用 currentThread() 方法檢索當前執行緒,並使用 new Thread 建立一個新執行緒。使用 getStackTrace() 獲取堆疊跟蹤並列印類名。
package com.tutorialspoint;
public class ThreadDemo implements Runnable {
ThreadDemo() {
// thread created
Thread t = new Thread(this, "Admin Thread");
// this will call run() function
t.start();
System.out.println(Thread.currentThread().getStackTrace()[2].getClassName());
}
public void run() {
System.out.println("This is run() method");
}
public static void main(String args[]) {
new ThreadDemo();
}
}
輸出
讓我們編譯並執行以上程式,這將產生以下結果:
This is run() method com.tutorialspoint.ThreadDemo
java_lang_thread.htm
廣告