
- 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 執行緒 interrupted() 方法
描述
Java Thread interrupted() 方法中斷此執行緒。測試當前執行緒是否已被中斷。
如果此方法連續呼叫兩次,則第二次呼叫將返回 false(除非在第一次呼叫清除其中斷狀態之後且第二次呼叫檢查它之前,當前執行緒再次被中斷)。
宣告
以下是java.lang.Thread.interrupted() 方法的宣告
public static boolean interrupted()
引數
無
返回值
如果當前執行緒已被中斷,則此方法返回 true;否則返回 false。
異常
無
示例:檢查執行緒是否中斷
以下示例演示了 Java Thread interrupted() 方法的用法。在此程式中,我們透過實現 Runnable 介面建立了一個執行緒類 ThreadDemo。在建構函式中,使用 new Thread 建立了一個新執行緒。它的名稱使用 getName() 列印,並使用 start() 方法啟動執行緒。使用 interrupted() 方法,我們檢查執行緒是否未中斷,然後使用 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.interrupted()) { 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
廣告