![]() |
1
2
线程非常有用,但同时它们可能是一种威胁。我正在开发一个项目来检查应用程序所带来的威胁。如果您通过adb shell运行top,它会专门告诉您一个应用程序可能运行多少线程。 您将看到处理器的使用与线程的数量成正比。这意味着线程数量越多,开销就越大。虽然他们似乎让你的活动在时间上保持自由,但同步他们的行为可能会成为一种真正的痛苦,然后你可能会陷入僵局,不是很漂亮。同时,多个线程数也会引起对应用程序行为的怀疑。因此,它们应该按照它们的本意来使用。 |
![]() |
2
3
从某种角度来看,一个新发布的浏览器应用程序大约有20个线程在运行。拥有25条线并不是完全不合理的。这取决于你对他们做了什么。
|
![]() |
3
2
如果您一次又一次地创建和破坏线程,那么是的,这将是一种负担,并导致开销。您可以通过使用threadpool来消除这一点,threadpool使线程的缓存可供执行。否则,线程就是遍历进程的方法。 您可能需要考虑对架构进行实际调整。例如,如果为了有一个响应的用户界面(即等待输入)而使多个线程保持活动状态,即使一个特定的线程只在五次菜单跳转之后才使用,那么可能不需要一直保持线程的活动状态。我很少在一个应用程序中使用15个不同的线程,即使该应用程序运行一个大型机床时也是如此……(我有重复的工作线程)。别忘了线程仍然需要调度,所以不要不必要地将它们保留在周围。 最后,确保并行程序不会遇到相同的老问题;避免死锁等。 |
![]() |
4
0
不可控制的线程数可能会增加应用程序的开销。您的应用程序似乎已经有更多的线程用于移动应用程序。 同步确实涉及对象锁的维护。 如果可以使用ThreadPool Executor,请签出。这将有助于限制系统中的线程,同时减少创建和销毁线程的开销。 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 3 年前 |