gpt4 book ai didi

java - 从线程池执行器设置线程超时

转载 作者:行者123 更新时间:2023-12-02 10:27:43 26 4
gpt4 key购买 nike

问题本身就说明了一切。我知道如何创建线程池执行器并在给定的线程池执行器上启动异步,但我想知道是否有任何方法可以为不同线程设置不同的超时?

示例:

@Async("thread pool executor") Func1

@Async("thread pool executor") Func2

如果是,我该如何实现?

我希望第一个的时间为 7 秒,第二个的时间为 1 秒。

最佳答案

有一种方法可以在 Future 对象上设置时间,但不能在 ThreadPool 上设置时间,但是你不能在线程级别设置它,但你仍然可以设置它在任务级别(因为无法保证哪个线程将执行该任务)

示例

@Async("someExecutor")
public Future<String> asyncService() {

return CompletableFuture.completedFuture("start").thenApply(s->{

System.out.println(Thread.currentThread().getName()+" - "+Thread.currentThread().getThreadGroup());
return "hello";
});
}

获取 future

Future<String> result = asyncService.asyncService();
result.get(3, TimeUnit.SECONDS);

关于java - 从线程池执行器设置线程超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53805466/

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