Multi-producer/multi-consumer задача.
От: BloodyTux  
Дата: 02.10.10 19:25
Оценка:
Здравствуйте!

Возникла следующая задача: имеется большое количество клиентских потоков (высокая конкуренция, т.е. порядка 100-200 штук ) и несколько рабочих в зависимости от числа ядер процессора. Клиенты отправляют задания для рабочих потоков (помещают в общую очередь), а потом через некоторое время проверяют выполнено ли задание и забирают результат, если он готов. Основное требование — постоянная загрузка рабочих потоков. Я прикинул, что если скажем 2 рабочих потока будут ломится через тот же мьютекс, что и 200 потоков клиентов, то они будут простаивать. Вопрос: спасут ли ситуацию lock-free алгоритмы? Или может быть есть какое-то типовое решение данной проблемы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.