gpt4 book ai didi

java - future 超时和IO超时

转载 作者:行者123 更新时间:2023-11-30 03:21:53 24 4
gpt4 key购买 nike

我有多个线程调用 API。 API 打开一个未设置超时的套接字。但是,我在 future.get() 上设置了超时。如果套接字永远保持打开状态,future 的超时是否会起作用并退出调用 API 的任务的处理?

最佳答案

Future.get会抛出 TimeoutException当超时到期时。

但是,底层任务将继续执行,除非您有办法中断它。例如,可以通过关闭套接字(如果您有权访问它)或通过 API 提供的任何机制来实现。

您可以尝试中断执行,但要由代码来捕获中断(通过 Thread.interrupted() ),因此它可能没有效果,具体取决于底层任务实现:

try {
Future<R> future = // ...
} catch (TimeoutException e) {
// ...
future.cancel(true); // try to interrupt
}

关于java - future 超时和IO超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148295/

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