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

Java利用future及时获取多线程运行结果

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


Java利用future及时获取多线程运行结果

哎呀妈呀终于能说说自己喜欢的小说了太激动了喵的就说我先来安利一下网络算我比较喜欢的几本小说我在网络上看的都是豪门总裁小说不喜欢的跳过谢谢首先是亿万老婆买一送一_安知晓的小说这本算是我看的比较早的小说了小学六年级就看了算得上入坑之作了内容很精彩而且很丰富超级喜欢白夜跟苏曼那一对哈哈哈习惯豪门总裁带球类小说可以去看一看哦~跟亿万老婆买一送一同一个时间看的还有一本叫做妈咪17岁天才儿子腹黑爹程宁静的书这个也炒鸡好看昂不知道为啥就喜欢这种主角超多的小说里面的陆臻诺兰的虐恋情深真的让我非常感动陆臻真的是一度成为我男神阿风华绝代倾国倾城真的是忍痛安利给你们还有误惹豪门强娶迷糊小甜妻忘了谁写的这个也是强推啊穿裙子是什么感觉我想穿过的都知道,在这我就给大家讲讲都有哪些裙子,又有多少是你穿过的呢?裙子种类到底有多少种?坦白说,虽然我嗜裙如命,可是说到裙子的种类,我还真不太清楚。  不过,我会尝试着知无不言言无不尽。首先,从最广义上分,裙子可以分为连衣裙和半身裙两种。连衣裙??半身裙一旦将裙子分为了连衣裙和半身裙,那么,裙子种类就可以分别从两者进行细分了。以连衣裙为例1、按面料分。  可分为:真丝连衣裙、桑蚕丝连衣裙、香云纱连衣裙、毛呢连衣裙、纯棉连衣裙等。半身裙亦然。2、按风格分。  可分为:韩版连衣裙、优雅连衣裙、时尚连衣裙、复古连衣裙等。半身裙亦然。3、按细节分。  可分为:蕾丝裙、牛仔裙、雪纺

Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。

牛奶营养丰富,含有优质蛋白质,是钙的最佳来源,还含有一定量的乳糖,是值得推荐的健康饮品。《中国居民膳食指南2016》建议每天喝300克的奶或奶制品。很多人选择在早餐的时候空腹喝牛奶,这可以吗?能不能空。防恶意抓取,请查看原文,,真格学网提供内容。

有了Future就可以进行三段式的编程了,1.启动多线程任务2.处理其他事3.收集多线程任务结果。从而实现了非阻塞的任务调用。在途中遇到一个问题,那就是虽然能异步获取结果,但是Future的结果需要通过isdone来判断是否有结果,或者使用get()函数来阻塞式获取执行结果。这样就不能实时跟踪其他线程的结果状态了,所以直接使用get还是要慎用,最好配合isdone来使用。

个人保守估计最起码15亿人民币以上。《敦刻尔克》--诺兰的又一力作!诺兰的电影,《蝙蝠侠系列》《盗梦空间》《星际穿越》,或者更早的《追随》《记忆碎片》,都是非常非常的经典,诺兰从来没有让人失望过。敦刻尔克大撤退不仅是第二次世界大战的转折点,也是整个人类历史的一个转折点。其重要性,不言而喻。电影题材非常的棒,主题宏大,意境深远,这个题材是大家非常感兴趣的。诺兰本人这个金字招牌!由于本人已经看了影片,。防恶意抓取,请查看原文,,真格学网提供内容。

这里有一种更好的方式来实现对任意一个线程运行完成后的结果都能及时获取的办法:使用CompletionService,它内部添加了阻塞队列,从而获取future中的值,然后根据返回值做对应的处理。一般future使用和CompletionService使用的两个测试案例如下:

俗话说“情人眼里出西施”,一旦喜欢上一个人,就会觉得对方哪里都美。即使是平凡的恋人,在对方眼里也变得魅力无限。这种“错觉”的产生,有被恋爱冲昏头脑的嫌疑。其实,周围人和当事人的感受往往相去甚远。美国心理学家以大学生群体为研究对象,做了如下实验。先给实验对象讲述一名23岁男生和一名19岁女生的恋爱经过,然后询问他们的“认同度”。故事是这样的:这对男女生周一初次邂逅于地铁的同一节车厢,当时他们隔着过道。防恶意抓取,请查看原文,,真格学网提供内容。

AllByMyself有几点注意:1.情感2.高音3.持续的时间4.最好别断音AllByMyself不仅是考验key的问题,还考验持续的时间。能唱到这首歌Key的人可能不少,\n但要长时间维持这个Ke。防恶意抓取,请查看原文,,真格学网提供内容。

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
 * 多线程执行,异步获取结果
 * 
 * @author i-clarechen
 *
 */
public class AsyncThread {
  public static void main(String[] args) {
    AsyncThread t = new AsyncThread();
    List<Future<String>> futureList = new ArrayList<Future<String>>();
    t.generate(3, futureList);
    t.doOtherThings();
    t.getResult(futureList);
  }
  /**
   * 生成指定数量的线程,都放入future数组
   * 
   * @param threadNum
   * @param fList
   */
  public void generate(int threadNum, List<Future<String>> fList) {
    ExecutorService service = Executors.newFixedThreadPool(threadNum);
    for (int i = 0; i < threadNum; i++) {
      Future<String> f = service.submit(getJob(i));
      fList.add(f);
    }
    service.shutdown();
  }
  /**
   * other things
   */
  public void doOtherThings() {
    try {
      for (int i = 0; i < 3; i++) {
        System.out.println("do thing no:" + i);
        Thread.sleep(1000 * (new Random().nextInt(10)));
      }
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
  /**
   * 从future中获取线程结果,打印结果
   * 
   * @param fList
   */
  public void getResult(List<Future<String>> fList) {
    ExecutorService service = Executors.newSingleThreadExecutor();
    service.execute(getCollectJob(fList));
    service.shutdown();
  }
  /**
   * 生成指定序号的线程对象
   * 
   * @param i
   * @return
   */
  public Callable<String> getJob(final int i) {
    final int time = new Random().nextInt(10);
    return new Callable<String>() {
      @Override
      public String call() throws Exception {
        Thread.sleep(1000 * time);
        return "thread-" + i;
      }
    };
  }
  /**
   * 生成结果收集线程对象
   * 
   * @param fList
   * @return
   */
  public Runnable getCollectJob(final List<Future<String>> fList) {
    return new Runnable() {
      public void run() {
        for (Future<String> future : fList) {
          try {
            while (true) {
              if (future.isDone() && !future.isCancelled()) {
                System.out.println("Future:" + future
                    + ",Result:" + future.get());
                break;
              } else {
                Thread.sleep(1000);
              }
            }
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      }
    };
  }
}

运行结果打印和future放入列表时的顺序一致,为0,1,2:

看到这个问题,我们先来普及下买手机时如何评价一部手机性能是否高或者低?手机性能的好坏需要看哪些?第一要看手机处理器(CPU)、内存、手机存储(相当硬盘);第二看智能手机中屏幕也是一大亮点,手机屏幕尺寸。防恶意抓取,请查看原文,,真格学网提供内容。

AllByMyself有几点注意:1.情感2.高音3.持续的时间4.最好别断音AllByMyself不仅是考验key的问题,还考验持续的时间。能唱到这首歌Key的人可能不少,\n但要长时间维持这个Ke。防恶意抓取,请查看原文,,真格学网提供内容。

do thing no:0
do thing no:1
do thing no:2
Future:java.util.concurrent.FutureTask@68e1ca74,Result:thread-0
Future:java.util.concurrent.FutureTask@3fb2bb77,Result:thread-1
Future:java.util.concurrent.FutureTask@6f31a24c,Result:thread-2

下面是先执行完的线程先处理的方案:

感谢邀请!小编,您说有一首歌的歌词里有,“有人爱的女人最美丽”。经过本人多次核实,应该是这一句:“你是我这一生想要的美丽女人”这句歌词“你是我这一生想要的美丽女人”,是来自刘嘉亮演唱的《美丽女人》。《。防恶意抓取,请查看原文,,真格学网提供内容。

AllByMyself有几点注意:1.情感2.高音3.持续的时间4.最好别断音AllByMyself不仅是考验key的问题,还考验持续的时间。能唱到这首歌Key的人可能不少,\n但要长时间维持这个Ke。防恶意抓取,请查看原文,,真格学网提供内容。

import java.util.Random;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingDeque;
public class testCallable {
  public static void main(String[] args) {
    try {
      completionServiceCount();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (ExecutionException e) {
      e.printStackTrace();
    }
  }
  /**
   * 使用completionService收集callable结果
   * @throws ExecutionException 
   * @throws InterruptedException 
   */
  public static void completionServiceCount() throws InterruptedException, ExecutionException {
    ExecutorService executorService = Executors.newCachedThreadPool();
    CompletionService<Integer> completionService = new ExecutorCompletionService<Integer>(
        executorService);
    int threadNum = 5;
    for (int i = 0; i < threadNum; i++) {
      completionService.submit(getTask(i));
    }
    int sum = 0;
    int temp = 0;
    for(int i=0;i<threadNum;i++){
      temp = completionService.take().get();
      sum += temp;
      System.out.print(temp + "\t");
    }
    System.out.println("CompletionService all is : " + sum);
    executorService.shutdown();
  }
  public static Callable<Integer> getTask(final int no) {
    final Random rand = new Random();
    Callable<Integer> task = new Callable<Integer>() {
      @Override
      public Integer call() throws Exception {
        int time = rand.nextInt(100)*100;
        System.out.println("thead:"+no+" time is:"+time);
        Thread.sleep(time);
        return no;
      }
    };
    return task;
  }
}

运行结果为最先结束的线程结果先被处理:

多虑了吧亲看篇不好的文章就向自己身上扯按发生状况的情况来追究状况这文章在你身上起到的效果有点过头了回家时你看好自己的孩子有你觉得不太好的状况就提醒重点在预防真发生了不好的状况首先要考虑的是把孩子怎样救。防恶意抓取,请查看原文,,真格学网提供内容。

AllByMyself有几点注意:1.情感2.高音3.持续的时间4.最好别断音AllByMyself不仅是考验key的问题,还考验持续的时间。能唱到这首歌Key的人可能不少,\n但要长时间维持这个Ke。防恶意抓取,请查看原文,,真格学网提供内容。

thead:0 time is:4200
thead:1 time is:6900
thead:2 time is:2900
thead:3 time is:9000
thead:4 time is:7100
  0  1  4  3  CompletionService all is : 10

总结

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

最近两天一直有看到这个新闻,首先这是个让人痛心和遗憾的事情,值得大家的反思。女性在怀孕生产和哺乳期就是最脆弱无助的时候,最易受到攻击和伤害,还有面临食物匮乏的威胁,所以婚姻和固定伴侣是女性度过危险期的生理和心理上的保证。我想绝大多数的女性愿意走入婚姻,也是基于这些生理心理上安全保障的需求吧。从这个角度就能解释为什么产妇会签署由丈夫全权负责的知情同意书了:我和你是夫妻,现在我冒着生命危险,要生下我们。防恶意抓取,请查看原文,,真格学网提供内容。

小编觉得,4名同学及餐厅老板均不需要为此担负法律责任,因为有强调是自斟自饮,并不存在强迫关系,同学没有义务一定要进行劝阻,因此4名同学不需要为此担负法律责任。但是从道德层面上讲,4名同学没有对男生进行劝阻,而是任由其饮酒,到最终导致猝死。身为同学,在人情道德方面如此之冷漠,应该遭受道德的谴责。在此,小编也提醒大家,饮酒要适量,不然后果难以想象。牛奶营养丰富,含有优质蛋白质,是钙的最佳来源,还含有一定量的乳糖,是值得推荐的健康饮品。《中国居民膳食指南2016》建议每天喝300克的奶或奶制品。很多人选择在早餐的时候空腹喝牛奶,这可以吗?能不能空腹喝牛奶,主要看机体是否有乳糖不耐症。乳糖不耐症主要是由于小肠粘膜表面缺乏乳糖酶导致的乳糖消化和吸收障碍,并伴有腹胀、腹泻、腹痛等一系列临床症状。据研究显示,我国人群乳糖酶缺乏的发生率高达75%~95%,随着我国奶制品业的快速发展,乳糖不耐受的问题也日益突出。人群研究显示,早餐空腹饮奶发生不耐受症状的发生率高于正餐饮奶和午餐、晚餐2小时后饮奶。因此,建议乳糖不耐受的人群不要空腹时喝牛奶。那乳糖不耐个人保守估计最起码15亿人民币以上。《敦刻尔克》--诺兰的又一力作!诺兰的电影,《蝙蝠侠系列》《盗梦空间》《星际穿越》,或者更早的《追随》《记忆碎片》,都是非常非常的经典,诺兰从来没有让人失望过。敦刻尔克大撤退不仅是第二次世界大战的转折点,也是整个人类历史的一个转折点。其重要性,不言而喻。电影题材非常的棒,主题宏大,意境深远,这个题材是大家非常感兴趣的。诺兰本人这个金字招牌!由于本人已经看了影片,觉得它不像一般的战争片,更像一部悬疑惊悚片。电影始终保持着一种紧张的状态,保持了诺兰电影的一贯高水准。今年47岁的诺兰,不管是经历经验,还有能力上,现在都处于最高峰。诺兰很好的掌控了影片节奏,剧情非常


  • 本文相关:
  • java多线程之异步future机制的原理和实现
  • java多线程future和callable类示例分享
  • java多线程返回值使用示例(callable与futuretask)
  • java微信公众平台开发(13) 微信jssdk中config配置
  • java实现轻量型http代理服务器示例
  • java替换int数组中重复数据的方法示例
  • 【java io流】字节流和字符流的实例讲解
  • java利用endorsed如何覆盖jdk提供的类详解
  • spring mvc interceptor 实现性能监控的功能代码
  • servlet简单实现文件下载的方法
  • java中设置java_home无效的解决方法
  • java用gdal读写shapefile的方法示例
  • java之spring注解配置bean实例代码解析
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved