2016-07-03 10 views
1

Я знаю, что реализация Vibe.D основана на волокнах. Но я не знаю, как обрабатываются сценарии высокой загрузки Vibe.D. Это планировщик в Vibe.D, выделяющий волокна на несколько потоков или только один поток для всех волокон?Является ли Vibe.D многопоточным для обработки одновременных запросов?

Это соображение очень важно, потому что даже при высокой эффективности волокон много времени в расходовании электроэнергии направлено не более чем на один поток, который используется для участия во всех входящих запросах.

ответ

5

Их главная страница говорит да:

http://vibed.org/

эта страница детали

http://vibed.org/features#multi-threading

Распределенная обработка входящих соединений

HTTP-сервер (а как и любой другой TCP-сервер) может быть поручено обрабатывать входящие соединения через рабочие потоки пула потоков, а не в основном потоке. Для приложений, которым не нужно обмениваться данными между разными соединениями в процессе, это может увеличить максимальное количество запросов в секунду линейно с количеством ядер в системе. Эта функция активируется с использованием параметров HTTPServerOption.distribute или TCPListenOptions.distribute.