Информация об изменениях

Сообщение Re[9]: Тестовое задание ... от 15.06.2015 21:04

Изменено 15.06.2015 21:04 GreenTea

Здравствуйте, 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>
Получаем цикл.


Но это частный случай в котором случайно совпали тайминги добавления и удаления тасок. В общем же случае вероятность такой ситуации очень мала.
Re[9]: Тестовое задание ...
Здравствуйте, 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>
Получаем цикл.


Но это частный случай в котором случайно совпали тайминги добавления и обработки тасок. В общем же случае вероятность такой ситуации очень мала.