package com.test;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ThreadTest6
{
/**
* @param args
*/
public static void main(String[] args) throws Exception
{
callMethod2();
}
private static void callMethod1() throws InterruptedException,
ExecutionException
{
ExecutorService pool = Executors.newCachedThreadPool();
Future<String> future = pool.submit(new Callable<String>()
{
public String call() throws Exception
{
Thread.sleep(1000);
return "rs";
}
});
pool.shutdown();
System.out.println(future.get());
}
private static void callMethod2() throws Exception
{
Executor executor = Executors.newCachedThreadPool();
CompletionService<Integer> service = new ExecutorCompletionService<Integer>(executor);
for (int i = 0; i < 10; i++)
{
final int temp = i;
service.submit(new Callable<Integer>(){
public Integer call() throws Exception
{
Thread.sleep(new Random().nextInt(1000));
return temp;
}
});
}
((ExecutorService)executor).shutdown();
for (int i = 0; i < 10; i++)
{
System.out.println(service.take().get());
}
}
}
回调任务结果
最新推荐文章于 2024-04-18 10:32:09 发布