Java8中并行操作的方法及示例分享

戚薇 Java经验 发布时间:2023-05-11 09:13:12 阅读数:7025 1
下文笔者讲述java8中并行操作的方法及示例分享,如下所示
并行操作的方法
   借助 CompletableFuture 类中的方法
   
   CompletableFuture.allOf(
            CompletableFuture.runAsync(方法))
例:

定义三个方法

第一个方法执行700000000纳秒
第二个方法执行500000000纳秒
第三个方法执行100000000纳秒

@SneakyThrows
private String selectData1() {
    TimeUnit.NANOSECONDS.sleep(700000000);
    return "value1";
}

@SneakyThrows
private String selectData2() {
    TimeUnit.NANOSECONDS.sleep(500000000);
    return "value2";
}

@SneakyThrows
private String selectData3() {
    TimeUnit.NANOSECONDS.sleep(100000000);
    return "value3";
}

方法示例

@GetMapping("/test1")
public Map<String, Object> test1() {
    long start = System.nanoTime();
    Map<String, Object> result = new ConcurrentHashMap<>();
    result.put("key1", selectData1());
    result.put("key2", selectData2());
    result.put("key3", selectData3());
    long end = System.nanoTime();
    System.out.printf("test1耗时:%d纳秒\n", (end - start));
    return result;
}

------运行耗时说明------
test1耗时:1318577500纳秒

java8并行方法示例

@GetMapping("/test2")
public Map<String, Object> test2() {
    long start = System.nanoTime();
    Map<String, Object> result = new ConcurrentHashMap<>();
    CompletableFuture.allOf(
            CompletableFuture.runAsync(() -> {
                result.put("key1", selectData1());
            }, ForkJoinPool.commonPool()),
            CompletableFuture.runAsync(() -> {
                result.put("key2", selectData2());
            }, ForkJoinPool.commonPool()),
            CompletableFuture.runAsync(() -> {
                result.put("key3", selectData3());
            }, ForkJoinPool.commonPool())
    ).join();
    long end = System.nanoTime();
    System.out.printf("test2耗时: %d纳秒\n", (end - start));
    return result;
}
 
------运行耗时说明------
test2耗时: 709402400纳秒
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202305/16837676246402.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者