【发布时间】:2017-02-01 23:12:11
【问题描述】:
我正在尝试让我的 Android 应用更具响应性,为此我使用了多线程;我知道线程调度是由操作系统控制的,这个责任在操作系统线程调度器的手中,我们不能直接分配它们。
经过一些运行后,我感觉我的线程在单核中运行,只是为了节省电力,因为它们相互依赖(此处为生产者/消费者模式),这对我来说完全有意义。
我还阅读了一些 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++ 包袱。
还有另一种方法可以知道每个线程正在运行什么内核?
【问题讨论】:
-
第一步是找出使您的应用程序变慢的原因,并确定它是否可以从多线程中受益。你做到了吗?
-
@Kevin,是的,我做过,我的大部分代码之前都经过测试(大部分我在工作中使用过)。我正在处理很多 HttpRequest,所以我决定使用一些多线程来看看我是否可以在这里获得更多果汁 =)
标签: java android multithreading performance