Могу ли я создать цикл с максимальным количеством операций одновременно? - PullRequest
0 голосов
/ 30 июля 2011

В Java (Android) есть способ создать цикл, который выполняет много операций, но способен выполнять только n операций одновременно?

Например, скажем, мне нужно выполнить 50 сетевых операций, но я хочу запускать, скажем, десять одновременно и ставить в очередь остальные?

Приветствия

РЕДАКТИРОВАТЬ: Это уже исправлено. Я нашел решение для своей проблемы, но пока не могу закрыть вопрос. Извините!

Ответы [ 4 ]

1 голос
/ 30 июля 2011

Звучит так, будто вы ищете семафор .(По сути, это своего рода блокировка, когда вы разрешаете нескольким потокам выполнять фрагмент кода, но не более чем выделенное количество в любой момент времени, например, если у вас есть 5 ванных комнат и 10 человек, которым нужно их использовать, вы быпусть первые 5 в, и переименование 5, как пространство прояснилось).И похоже, что они встроены в Java .

1 голос
/ 30 июля 2011

Кажется, это больше проблема дизайна, чем что-либо еще.Мой текущий проект требует аналогичного решения, и мы решили использовать ограниченный ExecutorService для решения проблемы.Это может не подходить для вашей конкретной проблемы, но стоит проверить.К сожалению, я не очень разбираюсь в разработке Android, поэтому я не уверен, будет ли это подходящим решением, но проверьте эту ветку .

0 голосов
/ 31 июля 2011

реализует Runnable и присваивает поле ID каждому объекту, который будет индексом цикла for, очередь цикла 10 runnables и приостанавливает проверку идентификатора при выполнении Runnable и включает флаг

0 голосов
/ 30 июля 2011

Мне удалось решить мою проблему, используя метод и некоторые проверки в нем.Это довольно сложно объяснить, так как я сделал некоторые пользовательские вещи в используемых классах, но важно то, что я решил это:)

...