博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多线程(ExecutorService)
阅读量:7010 次
发布时间:2019-06-28

本文共 1402 字,大约阅读时间需要 4 分钟。

ExecutorService exec = null;

List<IbeFlightInfo> ibeFlightInfo = new ArrayList<IbeFlightInfo>();
TransferVO[] b2gFlights = new TransferVO[]{};
try {
exec = Executors.newFixedThreadPool(2);
Callable IBEcall = new IBEGetFlightThread(request);
Callable B2Gcall = new B2GGetFlightThread(request.getDepAirport(), request.getArrAirport(),request.getDepDate());

/*

submit(Callable)

方法 submit(Callable) 和方法 submit(Runnable) 比较类似,但是区别则在于它们接收不同的参数类型。Callable 的实例与 Runnable 的实例很类似,但是 Callable 的 call() 方法可以返回壹個结果。方法 Runnable.run() 则不能返回结果。

Callable 的返回值可以从方法 submit(Callable) 返回的 Future 对象中获取。

*/

Future<Object> IBEFuture = exec.submit(IBEcall);
Future<Object> B2GFuture = exec.submit(B2Gcall);
int second = 0;
while (!IBEFuture.isDone() && !B2GFuture.isDone()) {
TimeUnit.MILLISECONDS.sleep(1000);
second += 1;
}

ibeFlightInfo = (List<IbeFlightInfo>) IBEFuture.get();

b2gFlights = (TransferVO[]) B2GFuture.get();

System.out.println("共用時(秒):" + second);

} catch (Exception e) {
e.printStackTrace();
} finally {

/*

为了关闭在 ExecutorService 中的线程,你需要调用 shutdown() 方法。ExecutorService 并不会马上关闭,而是不再接收新的任务,壹但所有的线程结束执行当前任务,ExecutorServie 才会真的关闭。所有在调用 shutdown() 方法之前提交到 ExecutorService 的任务都会执行。

如果你希望立即关闭 ExecutorService,你可以调用 shutdownNow() 方法。这個方法会尝试马上关闭所有正在执行的任务,并且跳过所有已经提交但是还没有运行的任务。但是对于正在执行的任务,是否能够成功关闭它是无法保证的,有可能他们真的被关闭掉了,也有可能它会壹直执行到任务结束。这是壹個最好的尝试。

*/

exec.shutdown();
}

转载于:https://www.cnblogs.com/flord/p/5920910.html

你可能感兴趣的文章
ROS初级教程 cmake cmakelist.txt 的编写教程
查看>>
Comparing Inline and Multi-Statement Table valued UDFs
查看>>
python 机器学习
查看>>
php如何控制客户端生成缓存
查看>>
不错的在线印章生成器网站
查看>>
Arduino控制LCD显示helloworld
查看>>
线程、任务和同步学习笔记(一)
查看>>
JavaScript this
查看>>
OpenJudge/Poj 1163 The Triangle
查看>>
POJ 3130 半平面交+模版改进
查看>>
Python基础二
查看>>
AndroidStudio -- AndroidStuido中找不到cache.properties文件
查看>>
nginx 无法访问root权限的文件内容
查看>>
进程和线程有什么区别?
查看>>
关于text-align无法居中的问题
查看>>
Here We Go(relians) Again
查看>>
Signal函数
查看>>
[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
查看>>
chrono
查看>>
hdu2586 lca模板(在线路径倍增)
查看>>