Feature并行执行程序
创始人
2024-05-29 21:23:14

前言

有时候,我们执行一段代码,去从A获取数据,再去从B获取数据,而后从C获取数据,三个业务如果按照串行执行,需要的时间是A+B+C的时间。然而三个业务是可以独立执行的,没有前后约束条件。

代码示例

示例

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.util.concurrent.*;@SpringBootTest
class DemoFeatureApplicationTests {@Testpublic void feature() throws InterruptedException {long s = System.currentTimeMillis();ExecutorService executor = Executors.newCachedThreadPool();final Future futureA = executor.submit(new Callable() {public Double call() {try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}return 1.2;}});final Future futureB = executor.submit(new Callable() {public Double call() {try {Thread.sleep(6000);} catch (InterruptedException e) {e.printStackTrace();}return 1.3;}});final Future futureC = executor.submit(new Callable() {public Double call() {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}return 1.1;}});try {Double result = futureA.get(10, TimeUnit.SECONDS);Double result2 = futureB.get(10, TimeUnit.SECONDS);Double result3 = futureC.get(10, TimeUnit.SECONDS);System.out.println("计算结果:" + (result + result2 + result3));System.out.println("耗时:" + (System.currentTimeMillis() - s));} catch (Exception e) {e.printStackTrace();}}
}

示例代码分别表示A业务5秒,B业务6秒,C业务1秒,如果串行执行则需要12秒。那么使用Feature串行后,执行后可见,其使用时间6006毫秒,显然各业务并行执行。
在这里插入图片描述

Feature有什么用?

  • 利用Feature可以让充分利用处理器的并发执行能力,提高程序的运行效率。
  • Feature 在所有任务都执行完后,一并get结果。

相关内容

热门资讯

重大通报作弊器!乐乐上海麻将a... 重大通报作弊器!乐乐上海麻将ai智能透视辅助插件,乐乐上海麻将本来存在有外挂(有辅助挂方略)1、很好...
分享给玩家透视挂!家乡大贰ai... 分享给玩家透视挂!家乡大贰ai智能透视辅助工具,家乡大贰其实真的有外挂(有辅助挂细节)家乡大贰破解侠...
科普攻略开挂!英豪娱乐城ai智... 科普攻略开挂!英豪娱乐城ai智能透视辅助教程,英豪娱乐城好像真的是有外挂(有辅助挂头条)1、英豪娱乐...
总算了解辅助器!和悦游戏ai智... 总算了解辅助器!和悦游戏ai智能透视辅助教程,和悦游戏确实是真的有外挂(竟然有辅助挂)暗藏猫腻,小编...
揭秘关于辅助器!九九麻将ai智... 揭秘关于辅助器!九九麻将ai智能透视辅助技巧,九九麻将一贯是有外挂(有辅助挂方略)1、用户打开应用后...