当前位置: 首页 > news >正文

偷网站源码直接建站医院网站怎么建设

偷网站源码直接建站,医院网站怎么建设,wordpress优化服务,北京当地网站 点线程池异步的基础知识 详情见#xff1a;https://blog.csdn.net/sinat_32502451/article/details/133039624 线程池执行多任务#xff0c;获取返回值 线程池的 submit()方法#xff0c;可以提交任务#xff0c;并返回 Future接口。 而 future.get()#xff0c;可以获取…线程池异步的基础知识 详情见https://blog.csdn.net/sinat_32502451/article/details/133039624 线程池执行多任务获取返回值 线程池的 submit()方法可以提交任务并返回 Future接口。 而 future.get()可以获取到任务的结果但是get()方法会阻塞阻塞时间过长会占用过多的系统资源。 因此在使用时一般都会用 get(long timeout, TimeUnit unit) 设置超时时间。 //该线程池仅用于示例实际建议使用自定义的线程池 ExecutorService executor Executors.newCachedThreadPool(); FutureString future executor.submit(() - task1); //阻塞获取返回值2秒超时 String result future.get(2, TimeUnit.SECONDS);不过get(long timeout, TimeUnit unit) 比较适合设置单个任务的超时时间在多任务的情况下哪怕设置了超时时间阻塞的时间也会特别长。 比如有5个任务同时执行每个任务设置2s的超时时间在极端情况下这些任务全部阻塞并超时那总共要耗费的时间可能会达到10s这明显是不能接受的。 如果超时时间设置得太小又可能出现频繁超时。在多任务获取返回值的场景更适合使用 CompletableFuture。 CompletableFuture基础知识 详情见 https://blog.csdn.net/sinat_32502451/article/details/132819472 CompletableFuture多任务异步 CompletableFuture多任务异步不需要返回值的话主要使用 allOf()。 allOf()就是将多个任务汇总成一个任务所有任务都完成时触发。allOf()可以配合get()一起使用。 public static void allOfTest() throws Exception {ExecutorService executorService Executors.newCachedThreadPool();CompletableFutureVoid cf1 CompletableFuture.runAsync(() - System.out.println(cf1 ok.), executorService);CompletableFutureVoid cf2 CompletableFuture.runAsync(() - System.out.println(cf2 ok.), executorService);//将两个任务组装成一个新的任务总共的超时时间为2sCompletableFuture.allOf(cf1, cf2).get(2, TimeUnit.SECONDS);}CompletableFuture获取返回值 只有一个任务时CompletableFuture的使用跟线程池异步有点类似。 主要用到 CompletableFuture.supplyAsync(): 异步处理任务有返回值。 public static void supplyAsyncGet() {//该线程池仅用于示例实际建议使用自定义的线程池ExecutorService executorService Executors.newCachedThreadPool();CompletableFutureString completableFuture CompletableFuture.supplyAsync(()- runTask(), executorService);String result null;try {//获取返回值2秒超时result completableFuture.get(2, TimeUnit.SECONDS);} catch (Exception e) {logger.error(completableFuture.get error., e);}logger.info(result:result);}private static String runTask() {try {//任务耗时。可以分别设置1000和3000看未超时和超时的不同结果。Thread.sleep(1000);} catch (InterruptedException e) {logger.error(runTask error., e);}return taskResult;}CompletableFuture多任务异步获取返回值汇总结果 有几个方法比较关键 supplyAsync(): 异步处理任务有返回值whenComplete()任务完成后触发该方法有返回值。还有两个参数第一个参数是任务的返回值第二个参数是异常。allOf()就是所有任务都完成时触发。allOf()可以配合get()一起使用。 示例如下 /*** 异步多任务。汇总返回值*/public static void allOfGet() {//该线程池仅用于示例实际建议使用自定义的线程池ExecutorService executorService Executors.newCachedThreadPool();//线程安全的list适合写多读少的场景ListString resultList Collections.synchronizedList(new ArrayList(50));CompletableFutureString completableFuture1 CompletableFuture.supplyAsync(() - runTask(result1, 1000), executorService).whenComplete((result, throwable) - {//任务完成时执行。用list存放任务的返回值if (result ! null) {resultList.add(result);}//触发异常if (throwable ! null) {logger.error(completableFuture1 error:{}, throwable);}});CompletableFutureString completableFuture2 CompletableFuture.supplyAsync(() - runTask(result2, 1500), executorService).whenComplete((result, throwable) -{if (result ! null) {resultList.add(result);}if (throwable ! null) {logger.error(completableFuture2 error:{}, throwable);}});ListCompletableFutureString futureList new ArrayList();futureList.add(completableFuture1);futureList.add(completableFuture2);try {//多个任务CompletableFuture[] futureArray futureList.toArray(new CompletableFuture[0]);//将多个任务汇总成一个任务总共耗时不超时2秒CompletableFuture.allOf(futureArray).get(2, TimeUnit.SECONDS);} catch (Exception e) {logger.error(CompletableFuture.allOf Exception error., e);}ListString list new ArrayList(resultList);list.forEach(System.out::println);}private static String runTask(String result, int millis) {try {//此处忽略实际的逻辑用sleep代替//任务耗时。可以分别设置1000和3000看未超时和超时的不同结果。Thread.sleep(millis);} catch (InterruptedException e) {logger.error(supplyAsyncGet error.);}return result;} 相关资料 https://blog.csdn.net/sinat_32502451/article/details/132819472
http://www.dnsts.com.cn/news/25757.html

相关文章:

  • 钰鸣厦门网站建设没有有知道钓鱼网站在哪儿做
  • 网站后台管理器怎么做怎样通过网络销售自己的产品
  • php网站开发技术代码call_user_func_array() wordpress
  • 网站上做扫一扫艾特思成都网站建设
  • 网站空间与服务器安徽省建设工程信息网招标公告
  • 临海网站开发公司电话公司网页下载
  • 中山seo网站优化公司wordpress修改文章点赞数
  • 模板网站能用吗拨号地址怎么做网站
  • 保安做网站关联网站有那些
  • 网站icp备案 技术负责人帝国cms7.0模板 绿色企业网站模板(整站带数据)
  • 广州增城网站建设wordpress小程序商城
  • 网站建设 长安镇网站开发antnw
  • 门户网站特点网站后台上传图片大小
  • 个人网站做哪些流程2级a做爰片免费网站
  • 做网页兼职网站平凉市住房和城乡建设局网站
  • 网站一般做多大像素想学销售去哪培训
  • 南宁网站建设哪家公司实力强湛江市企业网站建设哪家好
  • 网站维护 案例大兴区制作网站的公司
  • 中山网站搭建网站域名使用期
  • dede做的网站打不开建网站需要什么服务器
  • 电子商城网站开发软件wordpress系统搭建
  • 和网站设计人员谈价要注意什么优化大师会员兑换码
  • 雄安网站建设推广wordpress博客网址模板
  • 湖南3合1网站建设傻瓜式一键建站系统
  • 如何做自己的播报网站泉州哪里做网站
  • 做动漫的网站如何禁止ip访问网站
  • 教师在哪些网站可以做兼职衡水网站网站建设
  • 网站策划常用软件金湖县城乡建设局网站
  • 企业网站宣传ciid室内设计协会
  • 手机培训网站建设wordpress后台界面样式