Итак, я разрабатываю приложение, имеющее «сильную» параллельную структуру, и поскольку время для меня важно, я подумал о создании 4 потоков для каждой «подделки» (при условии, что работает на 4-ядерном устройстве). Если 4 подзапроса выполняются последовательно, это будет большой потерей потенциала.Как обеспечить, чтобы мои потоки выполнялись на разных ядрах?
ответ
Я не считаю, что у вас есть доступ к отдельным ядрам - это обрабатывается ядром Android. Тем не менее, до тех пор, пока вы реализуете свои 4-дюймовые потоки как Java Thread
, все должно быть хорошо, поскольку они могут выполняться одновременно независимо от вашего основного Android Activity
. Вы можете найти дополнительную информацию об использовании Thread
в Android здесь: http://developer.android.com/reference/java/lang/Thread.html
ОС будет обрабатывать потоки, на которых работают ядра. Все, что вам нужно сделать, это использовать AsyncTasks или потоки, чтобы настроить его для параллельной обработки, и он сможет воспользоваться им, если это возможно. Вы можете найти более подробную информацию по теме in this qualcomm blog post.
Вы не можете управлять самим ядром (без корня), но мне нужно использовать все потоки, поэтому вам не нужно ничего делать. Это может помочь, если вы хотите одновременно запускать множество видов деятельности - Can you have two activities running at the same time?
- 1. Как программировать, чтобы разные процессы выполнялись на разных ядрах процессора?
- 2. Как обеспечить, чтобы потоки Java выполнялись в определенном порядке
- 3. C++ запускает потоки на разных ядрах
- 4. Как я могу создавать потоки на разных ядрах процессора?
- 5. Как я могу убедиться, что мои потоки/процессы запущены на разных ядрах
- 6. Выполнение процессов на разных ядрах
- 7. pyqt - Как обеспечить, чтобы все мои вычисления выполнялись в отдельном Qthread?
- 8. Как возможно, чтобы некоторые потоки никогда не выполнялись?
- 9. Как я могу обеспечить, чтобы мои программные загрузки выполнялись в правильном порядке?
- 10. Как разделить длинные задачи на разных ядрах?
- 11. Зачем устанавливать привязку к процессору, чтобы потоки выполнялись медленнее?
- 12. CUDA: мне нужно, чтобы разные потоки на нескольких графических процессорах выполнялись параллельно?
- 13. Методы работы на разных ядрах на python
- 14. Несколько экземпляров node.js на разных ядрах
- 15. На каких ядрах процессора работают мои процессы Python?
- 16. OpenJDK JVM не назначает потоки на нескольких ядрах
- 17. Почему мои потоки прекращаются?
- 18. Может ли ядро записывать потоки уровня пользователя одного и того же процесса на разных ядрах?
- 19. Как сила 32 обрабатывается на 32 разных ядрах?
- 20. Как предотвратить, чтобы мои потребительские потоки дважды удаляли последний элемент?
- 21. Rails - Как обеспечить, чтобы мои стили имели приоритет над Bootstrap?
- 22. Служба с фоновыми заданиями, как обеспечить, чтобы задания выполнялись периодически ОДИН за один кластер
- 23. ADO.NET ошибка в зомби транзакции? Как обеспечить, чтобы команды не выполнялись при неявной транзакции?
- 24. Как настроить procfile, sidekiq.yml, чтобы разные очереди sidekiq выполнялись на разных dynos в heroku?
- 25. Как синхронизировать потоки разных частот
- 26. Node.js child_process.fork() для запуска на разных ядрах процессора
- 27. Обеспечение того, чтобы коды в разных разделах выполнялись в фоновом режиме в iOS
- 28. Как выполнить программу java на нескольких ядрах?
- 29. Многопоточная программа (процесс) на многоядерных процессорах (ядрах) с гиперпотоком
- 30. Play framework - как контролировать мои потоки приложений?
Поскольку вы работаете в VM, нет концепции сродства к ядру. Чтобы сделать это, вам придется идти на родной язык и использовать NDK. – Simon
Откуда вы взяли предположение, что он работает на виртуальной машине? –
@DaveS Он явно указал «приложение». Если вам известно о способе запуска приложения за пределами виртуальной машины на Android, я был бы рад услышать об этом. – Simon