FutureTask and ThreadPoolExecutor
用ThreadPoolExecutor的時候,又想知道被執行的任務的執行情況,這時就可以用FutureTask。
ThreadPoolTask
package com.paul.threadPool;

import java.io.Serializable;
import java.util.concurrent.Callable;

public class ThreadPoolTask implements Callable<String>, Serializable {

private static final long serialVersionUID = 0;
// 保存任務所需要的數據
private Object threadPoolTaskData;

private static int consumeTaskSleepTime = 2000;

public ThreadPoolTask(Object tasks) {
this.threadPoolTaskData = tasks;
}

public synchronized String call() throws Exception {
// 處理一個任務,這里的處理方式太簡單了,僅僅是一個打印語句
System.out.println("開始執行任務:" + threadPoolTaskData);
String result = "";
// //便于觀察,等待一段時間
try {
// long r = 5/0;
for ( int i= 0 ; i< 100000000 ; i++){
}
result = "OK";
} catch (Exception e) {
e.printStackTrace();
result = "ERROR";
}
threadPoolTaskData = null;
return result;
}
}
模擬客戶端提交的線程ThreadPoolTask
















































































SPRING配置文件














































































測試類




















































posted on 2011-12-07 15:48 paulwong 閱讀(2698) 評論(1) 編輯 收藏 所屬分類: 性能優化