2010-01-26 13 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

相关问题