Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, GreenTea, Вы писали:
EP>>>Почему? Это же не потоки.
GT>>Ну так таски еще будут выполняться параллельно. Поэтому очередь будет очищаться. А если взять и допустить что за долисекунды придут триллионы тасок, тогда по памяти все умрет. Но зачем вдаваться в такие крайности.
EP>Даже если закрыть глаза на квадратичность — там всё равно условие не выполняется. Возможны вот такие последовательные состояния списка заданий (индексы клиентов):
EP>EP>1 2 3 4 5
EP>add(7)
EP>1 7 2 3 4 5
EP>process(1)
EP>7 2 3 4 5
EP>add(1)
EP>7 1 2 3 4 5
EP>process(7)
EP>1 2 3 4 5
EP>
Получаем цикл.
Но это частный случай в котором случайно совпали тайминги добавления и обработки тасок. В общем же случае вероятность такой ситуации очень мала.