2017-07-04 78 views
0

我正在使用org.asynchttpclient發佈異步請求。如何停止由org.asynchttpclient創建的線程以防止內存泄漏?

雖然關閉Tomcat中,我得到以下日誌:

重度:Web應用程序[/測試]似乎已經開始了一個名爲線程[池1線程1],但未能停下來。這很可能造成內存泄漏。
2017年7月4日上午10點53分○○秒org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads

重度:Web應用程序[/測試]似乎已經開始了一個名爲[AsyncHttpClient-2-1]線程,但未能阻止它。這很可能造成內存泄漏。
2017年7月4日上午10點53分○○秒org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads

重度:Web應用程序[/測試]似乎已經開始了一個名爲[AsyncHttpClient-2-2]線程,但未能阻止它。這很可能造成內存泄漏。
2017年7月4日上午10點53分○○秒org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks

重度:Web應用程序[/測試]建立一個ThreadLocal類型[java.lang.ThreadLocal中]的鍵(值[[email protected]])和類型[io.netty.util.internal.InternalThreadLocalMap](值[[email protected]])的值,但未能在Web應用程序已停止。線程將隨着時間的推移而被更新,以避免可能的內存泄漏。

如何關閉這些線程以防止內存泄漏。

回答

1

這實際上更像是一種警告,在大多數情況下都可以忽略。上下文重新加載或關閉時,您將看到此錯誤。如果您正在關閉服務器,那麼JVM也會關閉,操作系統將清理所有內存。
如果您想嘗試致電AsyncHttpClient(實施Closable)時關閉,則可能會停止此問題。您可能需要等待,讓它完全關閉連接工廠。您可以查看tomcat生命週期以添加關閉處理程序來處理關閉客戶端。

相關問題