Сколько потоков Java я могу запустить одновременно в приложении для Android? Я думаю, что это будет зависеть от архитектуры, так что есть ли способ определить то же самое?Android Multi Threading
ответ
Сколько потоков Java можно запускать одновременно в приложении для Android?
Это зависит от вашего определения «запустить» и «одновременно».
Вы можете запустить столько потоков, сколько хотите, в основном из-за ограничений памяти.
Сколько потоков выполняется одновременно, зависит от количества активных ядер на устройстве.
Я думаю, что это будет зависит от архитектуры вещь
Помимо архитектуры, это также зависит от того, что все происходит, как и Android устройств питания вниз ядра для экономии заряда батареи, когда это возможно. Кроме того, в зависимости от того, что делают потоки (например, блокировки ввода-вывода), наличие большего количества потоков, чем ядер, является разумным.
Типичный многоуровневый алгоритм калибровки пула потоков состоит в использовании потоков 2n + 1, где n - количество ядер. AsyncTask
uses this approach, например:
private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
Здесь пул потоков будет расти до MAXIMUM_POOL_SIZE
, который в два раза превышает число ядер (availableProcessors()
) плюс один.
- 1. Multi Threading в Android
- 2. Multi Threading
- 3. Multi Threading
- 4. Multi Threading не работает в Android
- 5. Android Multi Threading с собственным кодом
- 6. .net multi-threading
- 7. Multi Threading in C#
- 8. .NET 3.5 Multi Threading
- 9. Проблемы с Multi-Threading
- 10. freeDiameter и multi threading
- 11. Python3 multi threading
- 12. Multi Threading with Singletons
- 13. StreamWriter Multi Threading C#
- 14. C# - Multi-Threading
- 15. Multi Threading and Swing
- 16. Spring.Net/NHibernate - Multi Threading
- 17. python multi threading communication
- 18. .net application multi-threading
- 19. Singleton class & multi-threading
- 20. Multi-threading - Allocating Work
- 21. Blackberry multi threading issue
- 22. multi threading on asp.net
- 23. Multi Threading Java ScriptEngine
- 24. Queue-Multi Threading Python
- 25. JavaFX Multi Threading
- 26. Java Multi threading
- 27. Multi-Threading pauses form
- 28. Java: Multi Threading
- 29. Multi Threading и графика
- 30. cURL Multi Threading?
Итак, если у меня 4-ядерный процессор. Тогда в любом конкретном случае максимум 4 потока могут фактически выполнять код. Хотя другие потоки могут существовать, они должны находиться в состоянии ожидания/ожидания, пока один из 4 исполняемых потоков не переключится на другого планировщиком. Правильно ли я понимаю? –
@DeepankarArya: Правильно, хотя в любой заданной точке один или несколько из этих ядер могут быть отключены, поэтому количество исполняемых потоков может быть меньше, чем число * физических * ядер. – CommonsWare
Спасибо большое! –