Collections.synchronizedList

ArrayList是非线程安全的,在多线程的情况下,向list插入数据的时候,可能会造成数据丢失的情况.并且一个线程在遍历List,另一个线程修改List,会报ConcurrentModificationException(并发修改异常)错误.
Vector是一个线程安全的List,但是它的线程安全实现方式是对所有操作都加上了synchronized关键字,这种方式严重影响效率.所以并不推荐使用Vector.
Java 中 ArrayList 和 LinkedList 都不是线程安全的,但可以通过 java.util.Collections.synchronizedList(List list) 方法,获取一个线程安全的 List 实例对象。

			if(listA!=null&&listA.size()>0) {
				List<AcctBalanceEntity> list140000=Collections.synchronizedList(new ArrayList<>());
				CompletableFuture[] cfsA = listA.stream()
						.map(i -> CompletableFuture
								.supplyAsync(() -> {
									List<AcctBalanceEntity> listTmp=new ArrayList<>();
									ProdInstAcctRelBean bean=new ProdInstAcctRelBean();
									List<ProdInstAcctRelBean> beanList=new ArrayList<>();
									bean.setAcctId(i.getAcctId());
									bean.setRouteId(i.getAcctId());
									ErrorInfo errorInfo = dataInfoQueryInter.queryProdInstAcctRelList(bean, beanList);
									for (ProdInstAcctRelBean prodInstAcctRelBean : beanList) {
										ProdInstBean prodInstBean=new ProdInstBean();
										List<ProdInstBean> prodInstBeanList=new ArrayList<>();
										prodInstBean.setProdInstId(prodInstAcctRelBean.getProdInstId());
										dataInfoQueryInter.queryProdInstList(prodInstBean,prodInstBeanList);
										if(prodInstBeanList!=null&&prodInstBeanList.size()>0) {
											Optional<ProdInstBean> op = prodInstBeanList.stream().filter(e->e.getStatusCd().equals("140000")).findFirst();
											if(op.isPresent()) {
												listTmp.add(i);
											}
										}									}																											
								return listTmp;}, poolExecutor)
								.thenApply(h -> h).whenComplete((s, e) -> {
									list140000.addAll(s);
								})).toArray(CompletableFuture[]::new);
				CompletableFuture.allOf(cfsA).join();
				listA.removeAll(list140000);		
			}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All is well!8023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值