一个小错误_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 一个小错误

一个小错误

 2019/12/18 15:51:19  地方疙瘩人  程序员俱乐部  我要评论(0)
  • 摘要:写FutureTask<Boolean>,多产品鉴权,用到了一个ListList<FutureTask<Boolean>>batchAuthFutureTask=newArrayList<FutureTask<Boolean>>();for(inti=0;i<20;i++){XXXx=newXXX(i);FutureTask<Boolean>taskAuthOrder=newFutureTask<
  • 标签:一个 错误
写FutureTask<Boolean>,多产品鉴权,用到了一个List


class="java" name="code">
         List<FutureTask<Boolean>> batchAuthFutureTask = new ArrayList<FutureTask<Boolean>>();

		for(int i=0;i<20;i++){
			XXX x = new XXX(i);
			FutureTask<Boolean> taskAuthOrder = new FutureTask<Boolean>(x);
			ThreadPool.getCachedThreadPool().execute(taskAuthOrder);
			batchAuthFutureTask.add(taskAuthOrder);
		}

		boolean auth = true;
		for(FutureTask<Boolean> taskAuthOrder:batchAuthFutureTask){
			auth = auth&&taskAuthOrder.get();
		}


发现鉴权成功时(true)主线程会等子线程跑完再跑,鉴权失败,主线程不等子线程全部跑完就会跑了,一开始没明白原因,甚至怀疑FutureTask<Boolean>是不是后台有这样的业务功能又觉得实在没道理,回看代码是&&前面为false,后面不执行。

上一篇: 动态多数据源实现 下一篇: 没有下一篇了!
发表评论
用户名: 匿名