转载请注明出处:https://oldnoop.tech/c/206.html
创建任务类
为了演示一下CompletableFuture的功能,先创建一个任务类,
这个任务类包含了任务id,任务的执行结果集合data,
还定义了3个不同的阶段子任务,通过方法doTask,接收Supplier的接口,将具体阶段任务参数化
以及一些工具方法,这些工具方法主要是为了输出调试信息
编写异步计算的代码
首先, 创建单独的线程池执行异步任务
然后,为3个阶段子任务,分别定义映射函数,以便在流的操作中使用
编排多个阶段子任务,并在执行子任务的前后插入一些其他的行为
最后将多线程异步执行的结果, 使用CompletableFuture的join方法进行合并,
join方法会调用waitingGet方法,根据方法名也能推测 这里是真正阻塞等待异步计算结果的