Qt - Многопоточный HTTP сервер (через QThreadPool)

Третий из серии уроков, посвященных созданию простейшего http-сервера. Обработка запросов к серверу производится ограниченным числом потоков. Когда число одновременных запросов меньше числа потоков, запросы обрабатываются параллельно, как в случае простого многопоточного сервера. Однако, если запросов больше чем работающих потоков, запросы, которым не хватило потоков, выстраиваются в очередь и обрабатываются по мере освобождения работающих потоков. Такой шаблон программирования принято называть пул потоков, и в библиотеке Qt он реализован через стандартный класс QThreadPool. Реализация сервера с использованием пула потоков является компроммисным вариантом, позволяющим объединить преимущества как однопоточного, так и многопоточного серверов.

Sources
Image placeholder

Lev Alekseevskiy

I'm a passionate crossplatform software developer (Java, Qt Framework) with scientific physics background. I like to do R&Ds on a new technologies/frameworks and then sharing my knowledge with other people (e.g. by recording video tutorials in YouTube).