Две стратегии организации очередей заключаются в следующем: 1. Единая очередь. Каждый сервер примет следующего клиента, как только сервер станет доступен. 2. Очередь на каждый сервер. Клиенты выберут сервер с самой короткой очередью по прибытии и не смогут переходить из очереди после этого.
Может кто-нибудь объяснить вторую очередь? Это означает то же самое, что и первая очередь, только то, что заказчик выберет самую короткую (что означает более быструю обработку запроса) для очереди. Где я могу получить дополнительную информацию об этой очереди или есть ли какой-либо образец кода?
Вторая модель (очередь на каждый сервер) похожа на оформление заказа в продуктовом магазине. Вы выбираете очередь, основываясь на минимальном количестве клиентов или ожидаемом ожидании, основываясь на том, что вы наблюдаете в корзине с продуктами. Человек перед вами может купить 1 предмет или 100 предметов. Ваше время ожидания варьируется.
@selbie Я думаю, что ваши два примера дадут хороший ответ.
Ваше предположение о том, что самая короткая очередь также является самой быстрой, выполняется только в том случае, если все запросы обрабатываются за одно и то же время.
Изображение, представляющее две стратегии организации очередей
Было обнаружено, что подход «одна очередь - несколько серверов» более эффективен, чем подход с использованием нескольких очередей. При таком подходе время ожидания почти одинаково распределяется между всеми клиентами, даже несмотря на то, что время обработки для каждого клиента разное.
Вот ссылка на подробный анализ и математическое доказательство того же.
Первая модель похожа на покупки у Фрая. Все ждут в одну очередь. Следующий доступный кассир просит клиента, находящегося в передней части очереди, подойти к кассе, чтобы оформить заказ.