这里介绍两种 通过异步获取返回值的两种操作,这里做个小记。
1、定义示范的接口
public interface SycService {
JsonVO testSyc();
JsonVO testSyc2();
}
2、定义实现的实现类
@Service
public class SycServiceImpl implements SycService {
private static Logger logger = LoggerFactory.getLogger(SycServiceImpl.class);
/**
* 通过线程池提交 callable 实现异步
* @return
*/
@Override
public JsonVO testSyc() {
logger.error("----------通过线程池提交 callable 实现异步");
ExecutorService exceutor = (ThreadPoolExecutor)Executors.newCachedThreadPool();
List<Future<String>> list = new ArrayList<>(5);
for (int i = 0; i < 5; i++) {
Future<String> future = exceutor.submit(new ThreadPoolTask(i + "test"));
list.add(future);
}
List<String> resultLst = new ArrayList<>();
for (Future<String>