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

岚山建设网站网站建设都包含哪些内容

岚山建设网站,网站建设都包含哪些内容,wordpress繁体字插件,广州广告制作公司在 Java 中#xff0c;并行流 (parallelStream) 和 CompletableFuture 都是处理并发和异步编程的工具#xff0c;但它们在使用场景和适用性上有一些区别。下面是一些指导原则#xff0c;可以帮助你在选择使用并行流或 CompletableFuture 时做出决策#xff1a; 使用场景并行流 (parallelStream) 和 CompletableFuture 都是处理并发和异步编程的工具但它们在使用场景和适用性上有一些区别。下面是一些指导原则可以帮助你在选择使用并行流或 CompletableFuture 时做出决策 使用场景 1. 并行流 (parallelStream) 适用场景: 需要对集合进行并行处理。操作是独立的无需等待其他元素的结果。数据量较大适合并行分割和处理。 优点: 语法简洁易于使用。不需要显式的线程管理。 parallelStream 是 Java 8 引入的一个功能允许对集合进行并行处理。这是传统顺序 stream 的并行版本。以下是一个简要的解释 用法: ListT myList // 一些列表或集合 myList.parallelStream().forEach(element - {// 要在每个元素上并行执行的代码 });解释: parallelStream() 将顺序流转换为并行流。流的元素由多个线程并发处理这有可能提高在多核处理器上的性能。然而重要的是要注意并非所有操作都适合并行处理这取决于任务的性质。 2. CompletableFuture 适用场景: 需要更细粒度的控制例如异步任务之间的依赖关系。需要等待多个异步任务全部完成或任一完成。需要处理异常和结果。 优点: 提供了更灵活的异步编程能力。可以使用回调、组合和链式调用等方式。 CompletableFuture.runAsync 是 Java 8 引入的 CompletableFuture API 的一部分提供了进行异步编程的一种方式。以下是它的工作原理 用法: // 1、使用ForkJoinPool.commonPool()作为它的线程池执行异步代码System.out.println(当前调用者线程为: Thread.currentThread().getName()); CompletableFuture.runAsync(() - {// 异步方法内当前执行线程为:ForkJoinPool.commonPool-worker-1System.out.println(异步方法内当前执行线程为: Thread.currentThread().getName());System.out.println(---------------------); });CompletableFutureVoid future CompletableFuture.runAsync(() - {// 异步执行的代码 });//2、使用指定的线程池执行异步代码。此异步方法无法返回值。System.out.println(当前调用者线程为: Thread.currentThread().getName()); // fixme 根据阿里规约 建议真实开发时使用 ThreadPoolExecutor 定义线程池 ExecutorService threadPool Executors.newFixedThreadPool(10);CompletableFuture.runAsync(() - {// 异步方法内当前执行线程为:pool-1-thread-1System.out.println(异步方法内当前执行线程为: Thread.currentThread().getName());System.out.println(111); }, threadPool);// 演示代码执行完后关闭线程池 threadPool.shutdown(); 解释: runAsync 是一个工厂方法创建一个新的 CompletableFuture 并在单独的线程中运行指定的 Runnable。它返回一个 CompletableFutureVoid因为 Runnable 不产生结果。你可以附加回调或组合多个 CompletableFuture 实例以链接异步操作。 具体指导原则 并行流parallelStream 与 CompletableFuture的选择 计算密集型操作推荐使用 parallelStream: 原因 计算密集型操作可以充分利用并行流的简单实现和高效性能。并行流的底层实现会自动分配工作给可用的处理器核心提高整体计算速度。 含有I/O操作推荐使用 CompletableFuture: 原因 CompletableFuture 提供更灵活的异步编程能力特别适用于等待I/O的操作。可以根据等待和计算的比率灵活地控制线程数避免不必要的线程创建。在涉及到等待I/O的操作时使用 CompletableFuture 会更加灵活可以避免并行流的延迟特性造成的难以判断的情况。通过 CompletableFuture.supplyAsync 创建异步任务然后使用 CompletableFuture.allOf 等待它们全部完成。示例 ListCompletableFutureInteger futures myList.stream().map(element - CompletableFuture.supplyAsync(() - performIoOperation(element))).collect(Collectors.toList());CompletableFutureVoid allOf CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])); allOf.join();ListInteger result futures.stream().map(CompletableFuture::join).collect(Collectors.toList());1. 简单的并行处理: 如果任务可以独立并行处理: 选择并行流 (parallelStream): 示例对集合中的元素执行相同的操作互不影响。myList.parallelStream().forEach(element - { // 并行处理的操作 }); 2. 复杂的异步任务: 如果任务之间有依赖关系需要更细粒度的控制: 选择 CompletableFuture: 示例一个异步任务的结果依赖于另一个异步任务的完成。CompletableFutureVoid future CompletableFuture.runAsync(() - {// 异步任务1 }).thenRun(() - {// 异步任务2依赖于任务1的完成 }); 3. 等待多个任务完成: 如果需要等待多个任务全部完成或任一完成: 选择 CompletableFuture: 示例等待多个异步任务的全部完成或任一完成。CompletableFutureVoid future1 CompletableFuture.runAsync(() - {// 异步任务1 });CompletableFutureVoid future2 CompletableFuture.runAsync(() - {// 异步任务2 });CompletableFutureVoid combinedFuture CompletableFuture.allOf(future1, future2); combinedFuture.join(); // 等待全部完成4. 异常处理: 如果需要更丰富的异常处理: 选择 CompletableFuture: 示例对每个异步任务进行异常处理。CompletableFutureVoid future CompletableFuture.runAsync(() - {// 异步任务 }).exceptionally(throwable - {// 异常处理return null; // 或提供默认值 });5. 性能考虑: 如果是对集合进行简单操作数据量较大: 选择并行流 (parallelStream): 示例对集合进行简单的映射、过滤等操作。myList.parallelStream().map(element - {// 简单操作return transformedElement; }); 总结 简单的并行处理和集合操作: 选择并行流 (parallelStream) 复杂的异步任务、依赖关系、等待多个任务完成: 选择 CompletableFuture 在实际应用中通常你会根据具体的需求和场景选择合适的工具。有时候也可以结合使用这两者以发挥各自的优势。
http://www.pierceye.com/news/719853/

相关文章:

  • 公司建网站怎么建做网站的公司都很小吗
  • 手机cms建站系统重庆怎么站seo
  • 益阳建设局网站网站 设计 趋势
  • 奉贤网站建设网站制作金融企业如何做好网络推广
  • 范湖网站建设团队建设银行激活网站
  • 旅游网站开发网站设计报告书邢台旅游景点大全排名 免费
  • 如何创建div做网站推荐佛山伦教网站设计
  • 建设电子商务网站前的市场分析网站后台ftp
  • 华丽的网站模板律所网站建设
  • 网站 管理系统搜索关键词的方法
  • 网站桥页也叫设计班级网站建设
  • 安庆网站建设工作室方维网络科技有限公司
  • 手机网站开发利用流程做网盟行业网站的图片广告的销售
  • 厦门建公司网站怎样自做网站
  • 兰州市网站建设公司无锡上海网站建设
  • 轻骑铃木摩托车官网资源专业网站优化排名
  • 做电影网站赚钱吗中企网站建设
  • 罗源网站建设免费建网站 步骤
  • 哪些网站做简历合适wordpress校园
  • 网站子目录怎么做国内做的比较好的二手网站
  • 短链生成网站html模板免费十个网页
  • 图跃企业网站建设seo提供服务
  • 厦门市建设管理协会网站发帖效果好的网站
  • 手机商城网站制作网页设计与制作的岗位职责
  • 教学网站系统流程图wordpress激活主题
  • 北京房地产网站建设做app还是做微网站好
  • 网站建设的整个流程管理咨询公司网站
  • 长沙网站建设有限公司怎么做网站赚大钱
  • 找做网站页的在哪找沭阳建设局网站
  • 私人做网站有什么用不断加强门户网站建设