![](/img/trans.png)
[英]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.