当需要发送10个第三方api请求,打开网页耗时较长,体验效果不佳,需要优化查询时间,采用多线程是一种方法,需要注意点是,多线程结束后,需要休眠300ms,等待接口响应数据。否则,容易出现方法结束了,线程的结果还没出来。
public static void main(String args[]) {
List<OrderWarn> uReminds=new ArrayList<OrderWarn>();
List<OrderWarn> oReminds=new ArrayList<OrderWarn>();
List<OrderWarn> bodyNbList=new ArrayList<OrderWarn>();
ExecutorService fixPool = Executors.newFixedThreadPool(10);
for (Object bNb : bodyNbs) {
fixPool.execute(new Runnable() {
@Override
public void run() {
// 写业务
}
});
}
fixPool.shutdown();
try {
// 设置休眠,等待响应完成
Thread.sleep(230);
} catch (InterruptedException e) {
e.printStackTrace();
}
BillDetail billDetail =new BillDetail();
billDetail.setOReminds(oReminds);
billDetail.setUReminds(uReminds);
billDetail.setBodyNbList(bodyNbList);
}