JDK-CompletableFuture

news/2025/3/29 18:37:43/文章来源:https://www.cnblogs.com/heyanfeng/p/18791919

1. 函数式接口

1.1 Supplier

-  无参有返回值的接口。

1.2 Consumer

-  有参无返回值得接口。

1.3 Function<T,R>

-  Function接口是根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件。

1.4 Predicate

-  有参且返回值为Boolean的接口。

1.5 方法引用

- 在Lambda表达式中要执行的代码和我们另一个方法中的代码是一样的,这时就没有必要重写一份逻辑了,这时我们就可以“引用”重复代码。

2.CompletableFuture 是什么?

CompletableFuture 是 Java 8 中引入的一个实现异步编程类

2.1 API

  1. supplyAsync
    • 有返回参数的异步任务
    • 默认执行的forkjon 线程池中 也可以执行在自定义线程池
  2. runAsync
    • 无返回参数的异步任务
    • 默认执行的forkjon 线程池中 也可以执行在自定义线程池
  3. get
    • 它会阻塞当前线程,直到任务完成并返回结果
  4. get 带超时时间
    • 未完成任务,抛TimeoutException
  5. join
    • join() 方法是 CompletableFuture 类提供的一种获取任务结果的方式,它会阻塞当前线程,直到任务完成并返回结果。
  6. CompletableFuture 提供了一系列方法来处理任务的完成事件,实现异步回调.
  • thenApply 输入参数;
    • T是上一阶段的任务结果类型;
    • 返回值 U 是新阶段的任务结果类型;
    • fn方法对上一阶段的任务结果进行转换操作,并返回一个新的 CompletableFuture 对象。
  • thenAccept
    • 输入参数 T是上一阶段的任务结果类型
      -action方法对上一阶段的任务结果进行消费,并返回一个新的 CompletableFuture 对象
  • thenRun
    • CompletableFuture thenRun(Runnable action)相当于开启一个新的任务
  • thenCombine
    • thenCombine()方法将两个任务的结果进行组合,对他们的结果进行处理并返回新的 CompletableFuture 对象。
  • thenCompose
    • thenCompose方法拿到当前任务的结果之后,再对其结果进行异步操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906177.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nmap学习笔记

Nmap学习笔记 九步:Enumerate targets 列出目标 Discover live hosts 发现活动主机 Reverse-DNS lookup 反向 DNS 查询 Scan Ports 端口扫描 Detect versions 版本侦测 Detect OS 系统侦测 Traceroute 路由追踪 Scripts 脚本 Write output 输出Nmap Live Host Discovery---存…

postman 免登录使用

取消Help下面的所有勾选 重启即可I have a dream : Sandy beach B-J-N.

不同板卡间的同步序列出峰问题

简述 使用两块不同板卡,对前导ZC序列一收一发,在接收板上做本地相关,相关结果显示相关性有延迟,目前推测为射频滤波器问题。 异常情况 目前有一套FMQL45T900+CX9261s的板卡,运行OFDM波形进行灵敏度测试。由于只有一套,且收发隔离度仅有约50dB,导致无法在自回环的情况下进…

dl380 gen10微码升级

一、Updating the BIOS and/or iLO firmware using the iLO web interface 1、 通过浏览器登录iLO 5,在Firmware & OS Software页面选择Update Firmware。 2、选择Local file,将已保存至本地的固件文件挂载到选择文件处。3、 点击Flash,阅读更新提示,确认无误后点击OK即…

ThreeJs-16智慧城市项目(重磅以及未来发展ai)

![GIF](https://img2023.cnblogs.com/blog/2680817/202503/2680817-20250303164902745-1619665311.gif)项目源码:https://gitee.com/hq8466/threecity-com 写在前面:很早就弄完了的,只是一直说挑个黄道吉日发上来,托了这么久也没选到什么节日,今天天气不错就发了吧,然后后…

什么是最小权限原则?

一、最小权限原则是什么? 随着网络威胁变得越来越复杂,对强大安全实践的需求在现代企业运营中已根深蒂固。组织致力于保护他们的数据,无论是添加额外的验证层、加密信息还是控制网络流量。最小权限原则 (PoLP) 就是这样一种安全实践,它已成为整个组织的基本实践,无论其性…

易基因:m5C RNA甲基化测序(m5C MeRIP-seq)

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 m5C是RNA百余种修饰中研究较多的一种。m5C存在于tRNA上时,可以对翻译进行调节;存在于rRNA上时,可以对核糖体的生物合成进行质控;存在于mRNA上时,则可以影响mRNA的结构、稳定性及翻译过程。 m5C RNA修饰的…

压测实践案例

压测如何判断是依赖服务瓶颈 背景:优化网关代码,通过压测针对异常指标判断瓶颈 1.当发现响应曲线上升。2.简单方式使用另外一个接口轮询服务在冒尖的时候判断是否是服务异常 第一组 第二组第三组第四组

基于Python程序访问本地部署的DeepSeek和硅基流动DeepSeek API

基于Python程序访问本地部署的DeepSeek和硅基流动DeepSeek API前排提醒: 1. 本地通过Ollama部署DeepSeek,部署版本为 deepseek-r1:1.5b,若还未进行本地部署,可以参考博客Windows系统上使用Ollama本地部署DeepSeek 2. 线上API使用的是硅基流动(siliconflow)的DeepSeek API…

supOS蓝卓工业互联网与iNeuOS工业互联网操作系统对比

最近有一个企业正在调研工业互联网平台,其中调研的是supOS蓝卓工业互联网和iNeuOS工业互联网操作系统。让我们给出一个对比情况表,我们自己总结了一份,由于不太了解supOS,于是也问了deepseek。 最近有一个企业正在调研工业互联网平台,其中调研的是supOS蓝卓工业互联网和…

ASE2N50-ASEMI工业电源专用ASE2N50

ASE2N50-ASEMI工业电源专用ASE2N50编辑:ll ASE2N50-ASEMI工业电源专用ASE2N50 型号:ASE2N50 品牌:ASEMI 封装:TO-220F 批号:最新 最大漏源电流:2A 漏源击穿电压:500V RDS(ON)Max:5.0Ω 引脚数量:3 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:N沟道MOS管、…