Допустим есть сервер, принимающий некоторые запросы. Время обработки запроса может достигать нескольких секунд(проводятся вычисления), при этом сильно загружается процессор. Если пришло сразу несколько запросов и они загружаются для обработки, то скорость работы сервера предположительно уменьшится. Важно, чтобы каждый запрос обрабатывался как можно меньше времени.На сервере имеется двухядерный процессор. Запросы должны обрабатываться некоторой программкой.Хочу разработать алгоритм, в котором каждый запрос обрабатывался бы с помощью одного ядра, тем самым уменьшив время обработки запроса. Вот как я себе это представляю:Пришёл запрос - создать тред, запустить программу обработки запроса на одном ядре. Пришёл еще один запрос - запустить второй тред (на втором ядре) с программкой обработки запроса. Если оба ядра заняты обработкой запросов - поставить очередной пришедший запрос в очередь.Правильно ли так делать?Если да, то как назначить, чтобы каждый тред выполнялся на определенном (свободном) ядре?
|