gpt4 book ai didi

java - 线程与 CompletableFuture

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:08 24 4
gpt4 key购买 nike

将代码直接传递给线程与使用 CompletableFuture 相比有什么优势?

Thread thread = new Thread(() -> {do something});
thread.start();

对比

CompletableFuture<Void> cf1 =  
CompletableFuture.runAsync(() -> {do something});

最佳答案

CompletableFuture.runAsync(...)管理的 forkJoin-Pool 中运行 Runnable,而 new Thread() 创建您必须管理的新线程。

“被管理” 是什么意思,它是预先分配的并且线程在 JVM 中共享。当 runnable 完成时,线程可以被其他 runnable 重用。这可以更好地利用资源,特别是当线程实例化是一项昂贵的操作时 - 不仅是对象,还有一些额外的非堆内存 - 线程堆栈 - 必须分配。

关于java - 线程与 CompletableFuture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49865210/

24 4 0