[英]Append stacktrace of caller thread into the new thread being created, for easier debugging
[英]Behavior of HttpClient with caller thread being cancelled
我们有一个可调用的class A
,它实际上通过HttpClient.executeMethod(GetMethod)
与许多其他预计算进行HttpCalls。 使用MultiThreadedHttpConnectionManager
在构造函数中初始化HttpClient。
另一个class B
通过ExecutorService
为类A创建线程列表,并将任务提交给池,并期望将来返回对象。 B类中有以下逻辑:
for( Future f : futures ){
try{
String str = f.get(timeOut, TimeUnit.SECONDS);
}catch(TimeoutException te){
f.cancel(true);
}
}
这样,我们的线程将在指定时间后终止,并且该任务的执行将终止,并且该线程将可用于下一个任务。
我要确认以下几点:
谢谢!
这取决于。
如果Http Client
使用java.net.Socket,
其I / O不会中断,因此取消将无效。
如果使用NIO,则中断将关闭通道并导致异常。 在服务器上,这将导致流过早结束或写入异常,服务器应严格解决这两种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.