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

注册网站建设公司惠州住房和城乡建设部网站

注册网站建设公司,惠州住房和城乡建设部网站,金融投资网站 php源码,简洁印象wordpress企业主题文章目录 ListenableFuture#xff0c;带返回值的Guava多线程处理工具类举个例子扩展阅读 最近在学习#xff0c;Java实现异步编程的8种方式这篇博客的时候#xff0c;没有找到比较好的一个学习demo#xff0c;故在此整理一下。 ListenableFuture#xff0c;带返回值的Gua… 文章目录 ListenableFuture带返回值的Guava多线程处理工具类举个例子扩展阅读 最近在学习Java实现异步编程的8种方式这篇博客的时候没有找到比较好的一个学习demo故在此整理一下。 ListenableFuture带返回值的Guava多线程处理工具类 ListenableFuture是Java中的一个接口它继承自java.util.concurrent.Future接口。ListenableFuture主要用于异步计算场景允许在计算完成后添加回调函数Callback从而实现对异步任务执行结果的监听和处理。 与普通的Future不同ListenableFuture提供了一种更加灵活且易于使用的方式来处理并发操作。当你提交一个任务到ExecutorService时会返回一个ListenableFuture对象。这个对象表示将来某个时间点上可用的结果并允许你在该结果可用时触发回调函数。 为了实现这一功能ListenableFuture提供了两个关键方法 addListener(Runnable listener, Executor executor)此方法允许用户向ListenableFuture注册一个Runnable类型的监听器在异步任务完成时由指定的executor执行。addCallback(FutureCallback? super V callback, Executor executor)此方法允许用户向ListenableFuture注册一个带有成功和失败处理逻辑的回调函数在异步任务完成或出错时由指定的executor执行。 Google Guava库提供了对ListenableFutures进行操作、转换和组合等高级功能支持。例如 Futures.transform()基于原始 ListenableFuture 的值创建新 ListenableFutures。Futures.allAsList() 和 Futures.successfulAsList()将多个 ListenableFutures 组合成单个 Future。Futures.immediate* 系列方法创建已经具备特定值或异常状态下立即完成的 ListenableFutures。 总之ListenableFuture提供了一种更加灵活、高效且易于使用的方式来处理并发操作和异步任务。它允许开发者在计算完成后添加回调函数从而实现对异步任务执行结果的监听和处理。 举个例子 下面是一个使用ListenableFuture的示例其中在for循环中提交了多个任务 import com.google.common.util.concurrent.*;import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.Executors;public class ListenableFutureDemo {public static void main(String[] args) {// 创建一个线程池ListeningExecutorService executorService MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(5));// 用于存储所有的ListenableFuture对象ListListenableFutureString futures new ArrayList();for (int i 0; i 10; i) {final int taskId i;CallableString task () - {Thread.sleep(1000); // 模拟耗时操作return Task taskId completed;};ListenableFutureString future executorService.submit(task);Futures.addCallback(future, new FutureCallback() {Overridepublic void onSuccess(String result) {System.out.println(Success: result);}Overridepublic void onFailure(Throwable t) {System.err.println(Error occurred while executing task taskId);t.printStackTrace();}}, MoreExecutors.directExecutor());futures.add(future);}try {// 等待所有任务完成并获取结果。ListString results Futures.allAsList(futures).get();System.out.println(All tasks completed successfully. Results: );results.forEach(System.out::println);executorService.shutdown(); // 关闭线程池} catch (Exception e) {e.printStackTrace();}} }这个示例首先创建了一个ListeningExecutorService实例。然后在for循环中创建并提交了10个Callable任务。每次迭代都会将新创建的ListenableFuture添加到futures列表中。 我们还为每个future添加了回调函数以便在任务成功或失败时执行相应的操作。最后我们等待所有future完成并输出它们的结果。 扩展阅读 Java实现异步编程的8种方式
http://www.sadfv.cn/news/31000/

相关文章:

  • 网站接入服务单位名称网站如何防止恶意注册
  • 3g小说网站wordpress 后台上传
  • 门户网站对应序号是什么国内知名的网站建设
  • 关于网站建设的可行性报告做外贸出口衣服的网站
  • 临淄网站制作价格低网站后台管理系统哪个好
  • 崇义网站建设photoshop下载安装
  • 手机网站建设哪家好wordpress知更鸟主题
  • 网站更新前知道内容网站建设费可以计入办公费用么
  • 刚察县wap网站建设公司营销型网站建设公司哪里有
  • 做网站怎么认证微博seo搜索优化公司报价
  • 天门网站定制制作网站去哪家好
  • 网站开发生命周期营销导向企业网站建设
  • 网站城市分站是怎么做的WordPress mx 主题
  • 制作网站专业地方建设的钱哪里来
  • js多久可以做网站有专门做背景音乐的网站吗
  • 不知此网站枉做男人的网站上海建设网站平台
  • 银行门户网站建设北京网页制作模板
  • 中国建设教育协会官方网站帝国cms 网站名称标签
  • 哪个小说网站版权做的好处哪个网站可预约做头发
  • 商丘市住房和城乡建设厅网站电脑网站打不开怎么解决
  • 做的网站怎么让别人也能看到上海中心设计公司是谁
  • 为女朋友做网站网站建设费可摊几年
  • html5网站代码上海官网网址
  • 宁阳网站建设深圳营销型企业网站
  • 网站如何做信息表丰台建设企业网站
  • 云龙微网站开发宁波妇科专家哪个最好
  • 学校建设微网站的方案免费网站域名空间申请
  • 淄博住房和城乡建设局网站南充市房地产网官方网站
  • 如何夸奖一个网站做的好最近一周新闻大事摘抄
  • 中国智慧城市建设门户网站运维工程师