Android的多线程建议

时间:2016-09-24 02:09:45

标签: java android multithreading performance

我正在尝试让我的Android应用程序更具响应性并且这样做我正在使用多线程;我知道线程调度是由OS控制的,这样的责任在OS线程调度程序的手上,我们不能直接分配它们。

经过一些运行,我感觉我的线程在一个核心运行,只是为了省电,因为它们彼此依赖(这里是生产者/消费者模式),这对我来说是完全合理的。

我也读过一些Stack Overflow帖子只是为了确认我的感受,比如

Are new threads automatically assigned to a different CPU Core in Java?

Threads automatically utilizing multiple CPU cores?

还有一些我不会在这里发帖的人=)

我也读过这个Android: Find out which core the thread is running on

所以我的问题是:

根据您的经验,优化此类事物的好方法是什么?此外,我从未使用NDK与Android应用程序,什么是阅读NDK使用的最佳来源?顺便提一下,我有C ++的包袱。

还有另一种方法可以知道每个线程运行的核心是什么?

1 个答案:

答案 0 :(得分:0)

HttpRequest大部分时间都在等待服务器的回复。那时,线程会释放处理器,因此即使您的应用程序提供单核,多个线程也可以并行运行。仅当您的应用程序进行大量计算时,您才应该占用多个核心。我的建议是你连续地,而不是并行地发出Http请求,这就是你的应用程序没有响应的原因。