成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

控制Java線程超時后中止的方案

開發 后端
這里使用JDK5+的java.util.concurrent包下的API實現,采用這種方式是相對比較安全的。下面我們來看看控制Java線程超時后中止的方案。

這里使用JDK5+的java.util.concurrent包下的API實現,采用這種方式是相對比較安全的。

實現效果:

啟動一個任務,然后等待任務的計算結果同時設定一個超時時間,如果等待時間超出預設定的超時時間,則中止任務。

代碼實現:

  1. import java.util.concurrent.Callable;    
  2. import java.util.concurrent.ExecutionException;    
  3. import java.util.concurrent.ExecutorService;    
  4. import java.util.concurrent.Executors;    
  5. import java.util.concurrent.Future;    
  6. import java.util.concurrent.TimeUnit;    
  7. import java.util.concurrent.TimeoutException;    
  8.     
  9. /**   
  10.  * 啟動一個任務,然后等待任務的計算結果,如果等待時間超出預設定的超時時間,則中止任務。   
  11.  *    
  12.  * @author Chen Feng   
  13.  */    
  14. public class TaskTimeoutDemo {    
  15.     
  16.     public static void main(String[] args) {    
  17.         System.out.println("Start ...");    
  18.     
  19.         ExecutorService exec = Executors.newCachedThreadPool();    
  20.             
  21.         testTask(exec, 15); // 任務成功結束后等待計算結果,不需要等到15秒    
  22.         testTask(exec, 5); // 只等待5秒,任務還沒結束,所以將任務中止    
  23.     
  24.         exec.shutdown();    
  25.         System.out.println("End!");    
  26.     }    
  27.     
  28.     public static void testTask(ExecutorService exec, int timeout) {    
  29.         MyTask task = new MyTask();    
  30.         Future<Boolean> future = exec.submit(task);    
  31.         Boolean taskResult = null;    
  32.         String failReason = null;    
  33.         try {    
  34.             // 等待計算結果,最長等待timeout秒,timeout秒后中止任務    
  35.             taskResult = future.get(timeout, TimeUnit.SECONDS);    
  36.         } catch (InterruptedException e) {    
  37.             failReason = "主線程在等待計算結果時被中斷!";    
  38.         } catch (ExecutionException e) {    
  39.             failReason = "主線程等待計算結果,但計算拋出異常!";    
  40.         } catch (TimeoutException e) {    
  41.             failReason = "主線程等待計算結果超時,因此中斷任務線程!";    
  42.             exec.shutdownNow();    
  43.         }    
  44.     
  45.         System.out.println("\ntaskResult : " + taskResult);    
  46.        System.out.println("failReason : " + failReason);    
  47.     }    
  48. }    
  49.     
  50. class MyTask implements Callable<Boolean> {    
  51.     
  52.     @Override    
  53.     public Boolean call() throws Exception {    
  54.         // 總計耗時約10秒    
  55.         for (int i = 0; i < 100L; i++) {    
  56.             Thread.sleep(100); // 睡眠0.1秒    
  57.             System.out.print('-');    
  58.         }    
  59.         return Boolean.TRUE;    
  60.     }    
  61. }    

運行結果:

  1. Start ...    
  2. ----------------------------------------------------------------------------------------------------    
  3. taskResult : true    
  4. failReason : null    
  5. ---------------------------------------------    
  6. taskResult : null    
  7. failReason : 主線程等待計算結果超時,因此中斷任務線程!    
  8. End!   

原文鏈接:http://www.blogjava.net/jialisoftwo/archive/2013/03/29/397156.html

責任編輯:林師授 來源: BlogJava
相關推薦

2009-06-11 16:44:06

超時控制Java線程

2022-05-27 10:40:04

前后端權限控制設計

2020-03-27 11:41:12

線程 Java中止

2021-10-28 19:35:48

Go 控制超時

2022-12-07 10:56:23

線程池監控執行超時

2017-06-04 16:24:27

線程線程池中斷

2024-04-30 12:56:00

多線程.NET

2010-03-15 17:29:15

Java線程池

2009-09-14 19:39:14

批量線程同步

2024-06-13 09:30:33

Java線程池線程

2010-12-21 17:38:12

2010-03-17 17:37:17

Java線程返回值

2010-03-24 10:56:05

Python線程編程

2009-07-15 17:09:32

Swing線程

2010-03-17 15:54:42

Java線程控制權

2022-09-26 00:42:43

GuavaJDK動態代理

2010-03-17 18:04:55

java Socket

2010-03-17 09:33:30

Java多線程方案

2010-12-24 12:49:39

2024-12-20 08:20:46

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品无码久久久久 | 国产精品夜夜夜一区二区三区尤 | 日韩中文一区二区三区 | 免费观看色 | 成人欧美一区二区三区在线观看 | 国产亚洲欧美另类一区二区三区 | av一区二区三区 | 午夜国产一级片 | 欧美成人一区二区 | 久久亚洲国产精品日日av夜夜 | 成人免费福利 | 少妇淫片aaaaa毛片叫床爽 | 久久精品91 | 中文精品视频 | 国产欧美一区二区在线观看 | 99中文字幕 | 日韩在线不卡 | 香蕉婷婷| 在线日韩av电影 | 久久大陆 | 精品国产一区二区三区性色 | 99久久精品免费看国产免费软件 | 午夜精品久久久 | 精品国产一区二区三区成人影院 | 久久久精 | 亚洲高清在线观看 | 在线免费观看黄色 | 91在线精品视频 | 国产精品久久久久久久7777 | 久久99蜜桃综合影院免费观看 | av影音在线 | 国产精品视频久久久 | www.日日夜夜 | 伦理午夜电影免费观看 | 99热欧美| 久久激情网 | 亚洲一区视频在线播放 | 中文日韩字幕 | 先锋资源网 | 毛片一区二区三区 | 国产欧美精品 |