- 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 Thread interrupt() 方法
描述
Java Thread interrupt() 方法中斷此執行緒。中斷非活動執行緒可能沒有任何效果。
宣告
以下是java.lang.Thread.interrupt() 方法的宣告
public void interrupt()
引數
無
返回值
此方法不返回值。
異常
SecurityException − 如果當前執行緒無法修改此執行緒。
示例:中斷執行緒
以下示例演示了 Java Thread interrupt() 方法的使用。在這個程式中,我們透過實現 Runnable 介面建立了一個執行緒類 ThreadDemo。在建構函式中,使用 new Thread 建立了一個新執行緒。它的名稱使用 getName() 列印,並使用 start() 方法啟動執行緒。使用 isInterrupted() 方法,我們檢查執行緒是否未被中斷,然後使用 interrupt() 方法中斷執行緒。此後,我們使用 join() 方法阻塞執行緒。在 run() 方法中,我們在 while(true) 迴圈中添加了 1 秒的休眠,這會導致 InterruptedException。
在主方法中,我們建立了兩個 ThreadDemo 執行緒。
package com.tutorialspoint;
public class ThreadDemo implements Runnable {
Thread t;
ThreadDemo() {
t = new Thread(this);
System.out.println("Executing " + t.getName());
// this will call run() fucntion
t.start();
// tests whether this thread has been interrupted
if (!t.isInterrupted()) {
t.interrupt();
}
// block until other threads finish
try {
t.join();
} catch(InterruptedException e) {}
}
public void run() {
try {
while (true) {
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.print(t.getName() + " interrupted:");
System.out.println(e.toString());
}
}
public static void main(String args[]) {
new ThreadDemo();
new ThreadDemo();
}
}
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
Executing Thread-0 Thread-0 interrupted:java.lang.InterruptedException: sleep interrupted Executing Thread-1 Thread-1 interrupted:java.lang.InterruptedException: sleep interrupted
java_lang_thread.htm
廣告