异步编程之CompleTableFuture

异步编程之CompleTableFuture

一、前期准备(基础讲解)

1、 什么是异步?

所谓异步调用其实就是实现一个可无需等待被调用函数的返回值而让操作继续运行的方法。在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结果。但调用者仍需要取线程的计算结果。

2、使用前注意点介绍

在并发时代,我们常用多线程来进行异步编程,但是多线程有一个缺点,就是不容易获取线程执行后的值,尽管用一些奇招可以获取,但是这已经远离了我们的初衷。java 1.5提供了一个future接口,可以对线程中的执行状态进行cancle,判断isCancelledisDone。利用多线程来获取异步执行后的值,但是也有着诸多的缺点,比如

1.future没有异常处理程序,通常在future中异常后线程会一直阻塞在内部,造成异常抛不出,线程也退出不了

在这里插入图片描述
future中的get超时方法可以解决这个问题,但是若是方法还没有执行完,超时时间也过,又会出现超时异常的问题

V get(long timeout, TimeUnit unit)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章