2016-03-03 1 views
1

Я использую BoltsFramework (Parse) в android Application. Предположим, я хочу запустить в фоновом режиме несколько параллельных задач (так несколько потоков). Есть ли предел, чтобы избежать слишком много потоков? Или мы можем поставить очередь, если задач слишком много? Я хотел бы избежать вызова задач в серии. Вариант использования должен быть чем-то вроде запуска нескольких задач параллельно (огромное количество), и когда все будут выполнены, сделайте что-нибудь ....Есть ли максимальное количество параллельных болтов-Android задач?

ответ

0

Bolts-Android использует пул потоков с очереди за кулисами, поэтому вам не нужно беспокоиться об управлении им самостоятельно. Если вы хотите увидеть, как это реализовано, вы можете увидеть BoltsExecutors.java и AndroidExecutors.java.

В среде JVM он будет использовать значение по умолчанию Executors.newCachedThreadPool(), которое имеет ограничение на одновременные параллельные потоки Integer.MAX_INT и синхронную очередь при выходе из потоков.

В среде Android он использует собственный размер пула, который сам по себе зависит от количества ядер вашего процессора и имеет синхронную очередь, когда у него заканчиваются потоки.

Вы также можете пройти в своем собственном Executor несколькими способами для управления пулом потоков самостоятельно.

https://github.com/BoltsFramework/Bolts-Android/blob/master/bolts-tasks/src/main/java/bolts/BoltsExecutors.java

https://github.com/BoltsFramework/Bolts-Android/blob/master/bolts-tasks/src/main/java/bolts/AndroidExecutors.java

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