FutureTask and ThreadPoolExecutor
用ThreadPoolExecutor的時(shí)候,又想知道被執(zhí)行的任務(wù)的執(zhí)行情況,這時(shí)就可以用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;
// 保存任務(wù)所需要的數(shù)據(jù)
private Object threadPoolTaskData;

private static int consumeTaskSleepTime = 2000;

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

public synchronized String call() throws Exception {
// 處理一個(gè)任務(wù),這里的處理方式太簡(jiǎn)單了,僅僅是一個(gè)打印語(yǔ)句
System.out.println("開(kāi)始執(zhí)行任務(wù):" + threadPoolTaskData);
String result = "";
// //便于觀察,等待一段時(shí)間
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;
}
}
模擬客戶(hù)端提交的線(xiàn)程ThreadPoolTask
















































































SPRING配置文件














































































測(cè)試類(lèi)




















































posted on 2011-12-07 15:48 paulwong 閱讀(2704) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): 性能優(yōu)化