Здравствуйте, BloodyTux, Вы писали:
BT>Здравствуйте!
BT>Возникла следующая задача: имеется большое количество клиентских потоков (высокая конкуренция, т.е. порядка 100-200 штук ) и несколько рабочих в зависимости от числа ядер процессора. Клиенты отправляют задания для рабочих потоков (помещают в общую очередь), а потом через некоторое время проверяют выполнено ли задание и забирают результат, если он готов. Основное требование — постоянная загрузка рабочих потоков. Я прикинул, что если скажем 2 рабочих потока будут ломится через тот же мьютекс, что и 200 потоков клиентов, то они будут простаивать. Вопрос: спасут ли ситуацию lock-free алгоритмы? Или может быть есть какое-то типовое решение данной проблемы.
http://www.drdobbs.com/cpp/212201163
http://www.drdobbs.com/cpp/211601363