Оптимизирую сейчас один алгоритм на мультипроцессорность якобы. Конечно виндовозный планировщик в этом плане не супер, но другие варианты неподходят. Так вот. Урюк в том, что я буду раздавать N-ному кол-ву потоков данные на обработку, а после обработки каждый поток будет мне возвращать результат и ждать следующих данных для обработки. Следовательно, т.к. данных много, крутится эта система будет долго. И тут два варианта: я использую виндовозные функции подвешивания потока и возвращения в него, или же я использую глобальные флаги, а в каждом потоке делаю холостой цикл ожидания флага "на жри". Какой из этих вариантов меньше грузит процессор проверить вобщем-то достаточно просто, но мало ли кто-нибудь уже с этим сталкивался и даст точный ответ, сэкономив мне немного времени. Заранее спасибо.
уже занимает лишнее процессорное врямя, которое могло бы быть использовано под исполнение другого потока.
Arisu В винде оптимальными будут стандартные функции синхронизации. SetEvent, WaitForSingleObject, WaitForMultipleObjects, etc...
Искпользуя г@вновозный слэнг, можно сказать, что виндовозные порты завершения и критические секции на синхронизацию общих данных - самое оно.