package cn.itcast.test1;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadPoolExecutor;
public String call() throws Exception {
return "this is demo!";
}
}
public class ExecutorsReturn {
}
}
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadPoolExecutor;
//1.创建个类实现Callable接口,接口的泛型参数为String类型
//2,实现call()方法返回String类型
public String call() throws Exception {
return "this is demo!";
}
}
public class ExecutorsReturn {
public static void main(String[] args) throws Exception {
//3,通过Executors工厂类的newFixedThreadPool()方法创建ThreadPoolExecutor执行器(我写newSingleThrealPool它总说转化异常 )
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(3);
//4,创建Callable接口的实例
MyCall call = new MyCall();
//5,调用执行器的submit()方法发送Callable任务给执行器,这个方法返回一个Future<String>对象管理任务和得到的结果
Future<String> result = executor.submit(call);
//6,对与每个Future对象来讲,通过调用get()方法将得到由任务返回的String对象
}
}