2015-01-08 1 views
-1

Итак, я разрабатываю приложение, имеющее «сильную» параллельную структуру, и поскольку время для меня важно, я подумал о создании 4 потоков для каждой «подделки» (при условии, что работает на 4-ядерном устройстве). Если 4 подзапроса выполняются последовательно, это будет большой потерей потенциала.Как обеспечить, чтобы мои потоки выполнялись на разных ядрах?

+2

Поскольку вы работаете в VM, нет концепции сродства к ядру. Чтобы сделать это, вам придется идти на родной язык и использовать NDK. – Simon

+0

Откуда вы взяли предположение, что он работает на виртуальной машине? –

+0

@DaveS Он явно указал «приложение». Если вам известно о способе запуска приложения за пределами виртуальной машины на Android, я был бы рад услышать об этом. – Simon

ответ

-1

Я не считаю, что у вас есть доступ к отдельным ядрам - это обрабатывается ядром Android. Тем не менее, до тех пор, пока вы реализуете свои 4-дюймовые потоки как Java Thread, все должно быть хорошо, поскольку они могут выполняться одновременно независимо от вашего основного Android Activity. Вы можете найти дополнительную информацию об использовании Thread в Android здесь: http://developer.android.com/reference/java/lang/Thread.html

-1

ОС будет обрабатывать потоки, на которых работают ядра. Все, что вам нужно сделать, это использовать AsyncTasks или потоки, чтобы настроить его для параллельной обработки, и он сможет воспользоваться им, если это возможно. Вы можете найти более подробную информацию по теме in this qualcomm blog post.

-1

Вы не можете управлять самим ядром (без корня), но мне нужно использовать все потоки, поэтому вам не нужно ничего делать. Это может помочь, если вы хотите одновременно запускать множество видов деятельности - Can you have two activities running at the same time?

Смежные вопросы