0
有沒有人遇到過NanoHttpd泄漏線程的問題?NanoHttpd泄漏線程
事情是庫爲每個傳入請求創建一個新線程,並且當我看到這些請求的響應時,正在運行請求處理的內部線程從未完成。這導致它最終有數百個泄露的線程和應用程序崩潰。
我的代碼非常基本和直接。我只是subcllass NanoHTTPD和覆蓋serve()方法。
我調試的lib本身和它下面的代碼循環永遠在NanoHTTPD類:
while (!finalAccept.isClosed()) {
session.execute();
}
有什麼建議?
更新: 原來,這是和連接到客戶端應用程序,使請求我的應用程序,其中的http服務器啓動邊緣情況。當我從Chrome或curl發出請求時,它不會泄漏任何線程。
我認爲你的serve()方法的實現需要回答這個問題。 –
@PierreRust方法很簡單。原來,這是連接到向我的應用程序發出請求的客戶端應用程序的邊緣案例。當我從Chrome或curl發出請求時,它不會泄露線程。 –
我想到了這一點,您的客戶可能在完成連接時沒有關閉連接。然後Nanohttp會循環嘗試讀取套接字,它似乎沒有硬超時機制。 –