import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
public class testMain {
/**
* @param args
*
*/
public static void main(String[] args) {
List<FutureTask<Object>> futureTasks = new ArrayList<FutureTask<Object>>();
ExecutorService executorService = Executors.newCachedThreadPool();
for (int i = 0; i < 5; i++) {
FutureTask<Object> futureTask = new FutureTask<Object>(
new Callable<Object>() {
public Object call() {
try {
int time = (int) (Math.random() * 5000);
Thread.sleep(time);
System.out.println("第:"
+ Thread.currentThread().getName()
+ ":个线程");
System.out.println("运行时间:" + time + "ms");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
});
executorService.submit(futureTask);
futureTasks.add(futureTask);
}
executorService.shutdown();
for (int i = 0; i < futureTasks.size(); i++) {
try {
FutureTask<Object> futureTask = futureTasks.get(i);
Object object = null;
object = futureTask.get();
System.out.println("第" + (i + 1) + "个:" + object);
} catch (Exception e) {
}
}
}
}
结果:
第:pool-1-thread-3:个线程
运行时间:187ms
第:pool-1-thread-2:个线程
运行时间:2281ms
第:pool-1-thread-5:个线程
运行时间:3842ms
第:pool-1-thread-4:个线程
运行时间:3956ms
第:pool-1-thread-1:个线程
运行时间:4893ms
第1个:true
第2个:true
第3个:true
第4个:true
第5个:true