gpt4 book ai didi

java - 使用 java.util.concurrent 触发并忘记

转载 作者:行者123 更新时间:2023-11-29 09:44:02 24 4
gpt4 key购买 nike

如何使用 java.util.concurrency 实现“即发即弃”行为?我试过:

ExecutorService executor = Executors.newSingleThreadExecutor();

public void push(Callable<Boolean> task) {
Future<Boolean> future = executor.submit(task);
future.get(timeout, timeoutUnit);
}

但是 get() 在完成之前一直处于阻塞状态。 push() 调用者对任务的结果不感兴趣。

最佳答案

不要调用 get()submit() 足以在 Thread 中启动 Callable。您可以传递 Future 并在准备好获取结果时调用它的 get()(如果有的话)。

Javadoc

Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's get method will return the task's result upon successful completion.

If you would like to immediately block waiting for a task, you can use constructions of the form result = exec.submit(aCallable).get();

所以不要调用 get()

关于java - 使用 java.util.concurrent 触发并忘记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com