allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

浅谈Java多线程处理中Future的妙用(附源码)

来源:脚本之家  责任编辑:小易  时间:2017/10/11 16:53:48


浅谈Java多线程处理中Future的妙用(附源码)

中国人不喜欢使用安全座椅,是以前吧!现在只要条件好的,安全座椅都是必备了!那我来说说几点不习惯用的原因吧!首先,最重要的是国家并不重视安全座椅,宣传特别少,所以大家内心还没有这个意识!其次,现在还是有很多家庭是买不起车的,所以不用安全座椅也是正常的!有车的人,配上安全座椅是非常正常的。最后安全座椅使用的频率不高!而安全座椅的价格也是不便宜,这也是比较重要的一点!从传统上讲,最初机械表的秒针是独立于时针、分针的,这是基于它的机械构造而定的。大约200年前,由于中国人的审美需要,钟表师特别为中国定制了一种大三针怀表,也就是中国市场表,这种表内部构造经过改变,将秒针与时针、分针设计在同一轴心上。这样一来,表盘设计与之前就有了很大改变,从原先的小表盘改为一根秒针,简洁明了。后来,这种设计在手表上被广泛应用。很多手表的经典款都是大三针设计。(钟表时计堂,时计堂书店)宝玑经典款欧米茄星座系列,作为全世界范围内最具辨识度的时尚表款系列之一,星座系列一直在钟表界中广受赞誉。星座系列的经典设计理念,源于为纪念欧米茄品牌诞生一百周年,特别发布的欧米茄百年(Centena

java 中Future是一个未来对象,里面保存这线程处理结果,它像一个提货凭证,拿着它你可以随时去提取结果。在两种情况下,离开Future几乎很难办。一种情况是拆分订单,比如你的应用收到一个批量订单,此时如果要求最快的处理订单,那么需要并发处理,并发的结果如果收集,这个问题如果自己去编程将非常繁琐,此时可以使用CompletionService解决这个问题。CompletionService将Future收集到一个队列里,可以按结果处理完成的先后顺序进队。另外一种情况是,如果你需要并发去查询一些东西(比如爬虫),并发查询只要有一个结果返回,你就认为查询到了,并且结束查询,这时也需要用CompletionService和Future来解决。直接上代码更直观:

这个两个是实力最不相上下的!不过我个人是更加喜欢凯美瑞!本田雅阁真正意义的“超级雅阁”第九代雅阁超越了传统意义上的换代概念,是真正意义的“超级雅阁”,荟萃Honda全球领先技术,以梦想动力科技、极致驾悦科技以及豪华座舱科技三大创世科技展现“科技全武装”座驾的非凡魅力,以全价值进化的综合实力强势刷新行业标准。造型风格上糅合了欧式的简练和美式的霸气,较过往的日本车型都显饱满。推荐车型:广汽丰田凯美瑞凯美瑞是广汽丰田旗下的一款车型,34年来,历代凯美瑞都持续领先,赢得全球1900万车主的信赖,成为真正意义上的全球车中高级轿车之王者。没有最突出的感觉,只有都不错的印象,外加可靠性极高,恐怕就是世界上1。防恶意抓取,请查看原文,,真格学网提供内容。

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class CompletionServiceTest {
  static int numThread =100;
  static ExecutorService executor = Executors.newFixedThreadPool(numThread);
  public static void main(String[] args) throws Exception{
    //data表示批量任务
    int[] data =new int[100];
    for(int i=1;i<100000;i++){
      int idx =i % 100;
      data[idx] =i;
      if(i%100==0){
        testCompletionService(data);
        data =new int[100];
      }
    }
  }
  private static void testCompletionService(int [] data) throws Exception{    
    CompletionService<Object> ecs = new ExecutorCompletionService<Object>(executor);
    for(int i=0;i<data.length;i++){
      final Integer t=data[i];
      ecs.submit(new Callable<Object>() {
        public Object call() {
          try {
            Thread.sleep(new Random().nextInt(1000));
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          return t;
        }
      });
    }
    //CompletionService会按处理完后顺序返回结果
    List<Object> res =new ArrayList<Object>();
    for(int i = 0;i<data.length;i++ ){
      Future<Object> f = ecs.take();
      res.add(f.get());
    }       
    System.out.println(Thread.currentThread().getName()+":"+res);
  }
  private static void testBasicFuture(int [] data) throws Exception{   
    List<Future<Object>> res =new ArrayList<Future<Object>>();
    for(int i=0;i<data.length;i++){
      final Integer t=data[i];
      Future<Object> future=executor.submit(new Callable<Object>() {
        public Object call() {
          return t;
        }
      });
      res.add(future);
    }   
    for(int i = 0;i<res.size();i++ ){
      Future<Object> f = res.get(i);
      Object rObject =f.get();
      System.out.print(":"+rObject);
    }       
    System.out.println("LN");
  }
}

总结

以上就是本文关于浅谈Java多线程处理中Future的妙用的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:Java多线程ForkJoinPool实例详解Java通过卖票理解多线程Java利用future及时获取多线程运行结果等,有什么问题可以随时留言,欢迎大家交流讨论。

印度的居民一般厕所都有冲洗设备,普通百姓大便时则手拿一口杯水,习俗规定用左手洗屁股,所以到商店挑食品不得用左手,只有在有外国人光顾的高级场所的卫生间里才有手纸。我也是震惊的。下面是原因:为什么是左手?印度人认为,左手是污秽的,只配用来擦屁屁,所以他们吃饭、买东西、找钱、打招呼都是用右手。如果你用左手跟他们打招呼,可是会被翻白眼的。简单来讲,原因有三个:1.习惯难以改变。印度盆友们从小就是这样做的,。防恶意抓取,请查看原文,,真格学网提供内容。

有了用户口碑,饥饿营销就变得很容易。仅成立不到4年的一加,只是发布6款产品,这个品牌非常低调,只做安卓最好的产品。当其他互联网手机纷纷倒下的时候,一加却凭借着一加3和3T两款产品,扭亏为盈,实现充足的盈利。刘作虎表示:“不仅活着,而且还很健康。”根据极光大数据显示,一加目前的主要市场在欧美和印度,海外去年销售占比超过70%,根据去年CMR第三季度的数据显示,仅仅进入印度市场一年多,一加就占据了印度高端手机市场(400美金以上)高达18.7%的市场份额,仅排在三星之后。一加手机创始人刘作虎在一次聊\"如何改变中国制造?\"的演讲中,首次分享了他17年做产品的心得,刘作虎提到,\"打磨一款好的产品这个两个是实力最不相上下的!不过我个人是更加喜欢凯美瑞!本田雅阁真正意义的“超级雅阁”第九代雅阁超越了传统意义上的换代概念,是真正意义的“超级雅阁”,荟萃Honda全球领先技术,以梦想动力科技、极致驾悦科技以及豪华座舱科技三大创世科技展现“科技全武装”座驾的非凡魅力,以全价值进化的综合实力强势刷新行业标准。造型风格上糅合了欧式的简练和美式的霸气,较过往的日本车型都显饱满。推荐车型:广汽丰田凯美瑞凯美瑞是广汽丰田旗下的一款车型,34年来,历代凯美瑞都持续领先,赢得全球1900万车主的信赖,成为真正意义上的全球车中高级轿车之王者。没有最突出的感觉,只有都不错的印象,外加可靠性极高,恐怕就是世界上1


  • 本文相关:
  • java 多线程的同步几种方法
  • java通过卖票理解多线程
  • java 多线程thread与runnable的区别
  • java8中的 lambda表达式教程
  • java 中jxl操作excel实例详解
  • java程序中的延时加载异常及解决方案
  • java8中的类型注解浅析
  • spring boot与redis 实现session共享教程
  • java使用设计模式中的代理模式构建项目的实例展示
  • jstl el表达式遍历map的方法
  • java classloader机制详细讲解
  • java 字符串的拼接的实现实例
  • java编程中使用lambda表达式的奇技淫巧
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved