首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java.util.concurrent.ExecutorService的有关问题

2013-11-29 
java.util.concurrent.ExecutorService的问题!ExecutorService executorService Executors.newCachedThr

java.util.concurrent.ExecutorService的问题!

ExecutorService executorService = Executors.newCachedThreadPool();
//10个FutureTask
        List<FutureTask> futureTasks = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            futureTasks.add(new FutureTask<>(new Callable<String>() {//FutrueTask的构造参数是一个Callable接口或runnable接口
                @Override
                public String call() throws Exception {
                    Thread.currentThread().sleep(1000);
                    return Thread.currentThread().getName();//这里是异步操作
                }
            }));
        }
executorService.invokeAll(futureTasks);

最后一行提示:没有这个构造器。为什么?
[解决办法]
FutureTask没有实现Callable
[解决办法]

ExecutorService executorService=Executors.newCachedThreadPool();
//10个FutureTask
List<FutureTask> futureTasks=new ArrayList<>();
for (int i=0; i<10; i++) {
futureTasks.add(new FutureTask<>(new Callable<String>() {//FutrueTask的构造参数是一个Callable接口或runnable接口
@Override
public String call() throws Exception {
Thread.currentThread();
Thread.sleep(1000);
return Thread.currentThread().getName();//这里是异步操作
}
}));
}
for (FutureTask futureTask : futureTasks) {
executorService.execute(futureTask);
}
[解决办法]

for (FutureTask futureTask : futureTasks) {
    executorService.execute(futureTask);
}

[解决办法]
引用:


ExecutorService executorService=Executors.newCachedThreadPool();
//10个FutureTask
List<FutureTask> futureTasks=new ArrayList<>();
for (int i=0; i<10; i++) {
futureTasks.add(new FutureTask<>(new Callable<String>() {//FutrueTask的构造参数是一个Callable接口或runnable接口
@Override
public String call() throws Exception {
Thread.currentThread();
Thread.sleep(1000);
return Thread.currentThread().getName();//这里是异步操作
}
}));
}
for (FutureTask futureTask : futureTasks) {
executorService.execute(futureTask);
}


2楼正解!

热点排行