安卓系统中,我可以同时运行多少个线程?

16

我有一个Android应用程序,其中有几个独立的进程(对于Android调试器来说绝对是线程)

有多个动画监听器循环并相互调用

有一个倒计时器,它在启动后始终向零倒数

现在我需要考虑添加更多的倒计时器。这种循环进程最多可以进行多少个?在这个特定的实现中,我不关心性能、效率等问题,直到出现问题。

感谢您的洞察力

3个回答

11

如果你能正确地管理线程的生命周期并防止出现“忙循环”等问题,我会非常惊讶地得知你在安卓应用程序中可以安全使用的线程数量已经用尽。

但有一件事我确实了解到,我相当确定你只能同时拥有5个运行的异步任务,并且它们将任意存在并自行被杀死或重新启动,如果你启动新的异步任务...也就是说,如果我打开然后关闭一个异步任务五次,调试器会显示5个异步线程正在运行,但我可以随意切换开关,因为资源池会杀死最旧的已结束异步任务。


很好,知道了。我正在开发一个使用许多异步任务的不同应用程序。 - CQM

0

我不知道有什么最大值。但我可以告诉你,你很可能并不需要那么多线程。

你可以使用Android的Handler,特别是postDelayed()方法,在单个线程中保持倒计时侦听器。在单独的线程中启动一个Looper,并使用一个Handler来管理超时——不要忙等待或睡眠循环。


1
你是如何制作一个倒置的用户名的? - snapfractalpop

0

我不相信倒计时器会创建线程——从外观上看,它应该只是将您的任务添加到主线程上的队列中。

所有的监听器也应该在同一个线程上进行(至少对于可见对象来说,有一个单独的线程管理所有的监听器)。

因此,你可能使用的线程数量远远没有你想象的那么多。如果你创建了很多线程,我会感到担心——它们真的很难保持同步,可能会花费你比你获得的更多,但对于列出的结构,我会分配尽可能多的线程(当然要在廉价设备上测试性能)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接