Android 如何确保线程在不同的内核上运行?

Android 如何确保线程在不同的内核上运行?,android,parallel-processing,Android,Parallel Processing,因此,我正在开发一个具有“强”并行结构的应用程序,由于时间对我很重要,我考虑为每个“子工作”创建4个线程,假设在4核设备上运行。如果4个子工程按顺序执行,这将是一个巨大的潜在损失。我不相信您可以访问单个内核-这是由Android内核处理的。然而,只要您将4个线程实现为Java线程,就应该可以了,因为它们可以独立于您的主要Android活动并发执行。您可以在这里找到有关在Android中使用线程的其他信息:操作系统将处理哪些线程在哪些内核上运行。您所需要做的就是使用AsyncTasks或线程将其设

因此,我正在开发一个具有“强”并行结构的应用程序,由于时间对我很重要,我考虑为每个“子工作”创建4个线程,假设在4核设备上运行。如果4个子工程按顺序执行,这将是一个巨大的潜在损失。

我不相信您可以访问单个内核-这是由Android内核处理的。然而,只要您将4个线程实现为Java线程,就应该可以了,因为它们可以独立于您的主要Android活动并发执行。您可以在这里找到有关在Android中使用线程的其他信息:

操作系统将处理哪些线程在哪些内核上运行。您所需要做的就是使用AsyncTasks或线程将其设置为并行处理,如果可以,它将利用它。你可以找到关于这个主题的更多信息,我相信没有root用户你自己无法控制内核,但是android应该使用所有线程本身,所以你不需要做任何事情。
如果您想同时运行多个活动,这可能会有所帮助-

因为您在VM中运行,所以没有核心关联的概念。要做到这一点,您必须使用本地NDK。您从哪里得到他在VM上运行的假设?@DaveS他明确地说明了应用程序。如果您知道一种在Android上的VM之外运行应用程序的方法,我很高兴听到这个消息。当然,它们在JVM上运行,但这并不妨碍您利用多个内核,您只是无法明确指定在哪个内核上运行@DaveS我没说你不能利用多核。我说没有核心亲和力的概念。因此,您无法控制线程的排序和切片。OP明确表示他们希望避免顺序执行。没有对亲和力的控制,就无法保证这一点。获取控件需要自定义代码。