2010-01-26 17 views
26

我想知道一個應用程序的最大線程數。一個應用程序的最大線程數?

你知道Thread.activeCount()返回正在運行的線程組及其子組中活動線程的數量。

如果我可以知道在當前活動中創建的最大線程數,我可以限制活動線程。

我使用線程進行http連接並捕獲Http響應。

在此先感謝。

+3

您是否找到答案? – 2012-04-24 11:42:30

回答

20

我沒有注意到代碼強制執行的最大值。這就是說,即使對於網絡I/O來說,由於Android設備的CPU速度相當小,而且RAM非常有限,因此收益遞減速度將會相當快。

請考慮使用AsyncTask而不是您自己的線程。這使用了由Android設置的線程池,因此它將使用核心Android團隊認爲對平臺有效的池大小。

+0

AsyncTask很棒,唯一的問題是,在一些Android版本中,你不能有兩個並行運行的任務(這些任務是串行執行的),但是在其他版本上你可以。除了從源代碼中重寫AsyncTask之外,還有什麼解決方法? – Tomasz 2013-04-09 00:23:23

+6

@Tomasz:「除了從其源代碼中重寫AsyncTask之外,還有其他解決方案嗎?」 - 使用API​​ Level 11+上的'executeOnExecutor()'來選擇'THREAD_POOL_EXECUTOR'。 – CommonsWare 2013-04-09 11:32:12

+1

或者使用ThreadPoolExecutor進行專門的任務,在那裏你有更好的控制。 – 2018-03-08 18:18:33

相關問題