gpt4 book ai didi

java - 在几秒钟内没有响应后,如何停止主线程中通过 TaskExecutor 运行的线程?

转载 作者:行者123 更新时间:2023-12-02 08:14:18 26 4
gpt4 key购买 nike

我已经使用了 Spring 和 futures 中的 TaskExecutor 从任务中获取 future ,但是现在,当某些任务在一段时间内没有响应时,我必须停止这些任务。我尝试过使用 Future.cancel() 方法,但它没有使用线程剧照似乎正在运行。你能建议我一些方法来停止它吗?我的线程正在等待从链接读取 Html 内容..那么我如何停止任务

编辑:相关代码:

URL link = new URL(Content);
URLConnection yc = link.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
StringBuffer Sbuff = new StringBuffer();
while (((inputLine = in.readLine()) != null) &&
((Calendar.getInstance().getTimeInMillis() - TimeatStart) / 1000) < 4) {
Sbuff.append(inputLine);
}

最佳答案

一般来说,你不会这样做。如果您希望 HTTP 请求在挂起一段时间后停止,请为其设置超时。最好让线程完成它被赋予的任何工作。

编辑:根据您的源代码,您需要做的第一件事是确保在 URLConnection 上调用 connect()。否则,什么也不会发生。看看Working with URLs在 Java 教程中。之后,如果您仍想设置超时,请使用 setConnectTimeout()设置超时之前应尝试连接的时间量和 setReadTimeout()设置发送请求后等待接收数据的时间。

关于java - 在几秒钟内没有响应后,如何停止主线程中通过 TaskExecutor 运行的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738347/

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