作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用了 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/
我是一名优秀的程序员,十分优秀!