0
有没有人遇到过NanoHttpd泄漏线程的问题?NanoHttpd泄漏线程
事情是库为每个传入请求创建一个新线程,并且当我看到这些请求的响应时,正在运行请求处理的内部线程从未完成。这导致它最终有数百个泄露的线程和应用程序崩溃。
我的代码非常基本和直接。我只是subcllass NanoHTTPD和覆盖serve()方法。
我调试的lib本身和它下面的代码循环永远在NanoHTTPD类:
while (!finalAccept.isClosed()) {
session.execute();
}
有什么建议?
更新: 原来,这是和连接到客户端应用程序,使请求我的应用程序,其中的http服务器启动边缘情况。当我从Chrome或curl发出请求时,它不会泄漏任何线程。
我认为你的serve()方法的实现需要回答这个问题。 –
@PierreRust方法很简单。原来,这是连接到向我的应用程序发出请求的客户端应用程序的边缘案例。当我从Chrome或curl发出请求时,它不会泄露线程。 –
我想到了这一点,您的客户可能在完成连接时没有关闭连接。然后Nanohttp会循环尝试读取套接字,它似乎没有硬超时机制。 –