如何在運行時停止/殺死長時間運行的 Java 線程? 超時 -> 取消 -> 中斷狀態

已發表: 2021-07-17

如何殺死比預期更長的Java線程完成?超時 -> 取消 -> 中斷狀態

你有沒有想過如何殺死長時間運行的 Java 線程? 您有以下任何問題嗎?

  • 一段時間後殺死/停止線程
  • 在Java中的某個指定時間限制後殺死線程
  • 如何殺死一個 Java 線程
  • 如何通過示例停止 Java 中的線程
  • 如何在java代碼示例中停止線程
  • 如何在不使用停止方法的情況下停止java中的線程

如果您有以下任何問題,那麼您來對地方了。 今天我們將通過一個簡單的例子來演示 Java8 殺死長時間運行的線程的方法。

什麼是邏輯:

  1. 創建類 CrunchifyJavaTaskTimeout.java
  2. 創建只有 1 個線程池大小的 Java 線程執行器。
  3. CrunchifyRunner對象創建 4 個未來任務,超時時間為 3 秒
  4. CrunchifyRunner.java 是一個實現call()方法的簡單類
    • 如果futureTask = 4 ,它會引入20 seconds的延遲
  5. 一旦未來達到3 seconds的時間,如果線程仍在運行,它會創建超時異常
    • 一旦超時,我們需要使用 crunchifyFuture 取消任務。 cancel( true )
    • 一旦futureTask被取消,它就會觸發InterruptedException (當線程正在等待、休眠或以其他方式被佔用,並且線程在活動之前或活動期間被中斷時拋出。有時一個方法可能希望測試當前線程是否已被中斷,如果是這樣,立即拋出這個異常。)

讓我們開始吧:

Step-1 創建 CrunchifyRunner.java 類

Step-2 創建類 CrunchifyJavaTaskTimeout.java

第三步

右鍵單擊 CrunchifyJavaTaskTimeout.java 並將其作為 Java 應用程序運行。

您將在 Eclipse 控制台中看到以下結果。

如何在運行時殺死停止java線程

如果您對此主題有任何疑問,請告訴我。