获取双异步返回值时 如何保证主线程不阻塞?
获取双异步返回值时
本文导读:获取双异步返回值时的电脑方面的小经验,接下来IT袋网小编为大家介绍。
一、前情提要
在上一篇文章中,使用双异步后,如何保证数据一致性?,通过Future获取异步返回值,轮询判断Future状态,如果执行完毕或已取消,则通过get()获取返回值,get()是阻塞的方法,因此会阻塞当前线程,如果通过new Runnable()执行get()方法,那么还是需要返回AsyncResult,然后再通过主线程去get()获取异步线程返回结果。


使用双异步后,如何保证数据一致性?
3天前
写法很繁琐,还会阻塞主线程。
下面是FutureTask异步执行流程图:

二、JDK8的CompletableFuture
1、ForkJoinPool
Java8中引入了CompletableFuture,它实现了对Future的全面升级,可以通过回调的方式,获取异步线程返回值。
CompletableFuture的异步执行通过ForkJoinPool实现, 它使用守护线程去执行任务。
ForkJoinPool在于可以充分利用多核CPU的优势,把一个任务拆分成多个小任务,把多个小任务放到多个CPU上并行执行,当多个小任务执行完毕后,再将其执行结果合并起来。
Future的异步执行是通过ThreadPoolExecutor实现的。
相关阅读
-
创建自己的个人网站怎么弄 网页设计制作网站
小编为大家讲一讲创建自己的个人网站怎么弄和网页设计制作网站的方法内容,很不错的方法小知识,建议收藏哦! 随着个人创业的流行,很多个人也需要一个比较详细的网站来展示自己,开
-
Nginx面试题及答案精选:提升你的Web服务器技术水平
小编为你介绍Nginx面试题及答案精选的相关介绍,继续往下看吧! 1. Nginx基础知识 1.1 什么是Nginx? Nginx是一款开源且高性能、稳定、低资源消耗、高并发的HTTP和反向代理服务器,也是一个非常
-
免费备案二级域名分发解析 永久免费已备案二级域名注册
今天为大家介绍免费备案二级域名分发解析和永久免费已备案二级域名注册的IT知识,一起来了解了解吧。 想要制作一个网站,域名是必不可少的。每个网站都有独一无二的域名,那么新手该
-
SAN存储区域网络特点 特征概述:SAN存储网络的独特之处
下面为网友们详细介绍SAN存储区域网络特点的介绍,一定能解决您的问题的,一起来了解吧! SAN(Storage Area Network)是一种专门用于连接存储设备和服务器的网络架构。 其核心组成部分包括存


