Как мне контролировать количество потоков, над которыми работает моя программа?
У меня есть программа, которая теперь готова к многопоточности, но одна проблема состоит в том, что программа чрезвычайно интенсивно использует память, и мне нужно ограничить число работающих потоков, чтобы у меня не заканчивалось ОЗУ. Основная программа проходит и создает целую кучу дескрипторов и связанных потоков в приостановленном состоянии.
Я хочу, чтобы программа активировала заданное количество потоков, и когда один поток завершит свою работу, она автоматически приостановит работу следующего потока в строке, пока вся работа не будет завершена. Как мне это сделать?
Кто-то когда-то упоминал что-то об использовании обработчика потоков, но я не могу найти какую-либо информацию о том, как написать один или как именно он будет работать.
Если кто-то может помочь, это было бы очень признательно.
Использование Windows и Visual C ++.
Примечание: мне не нужно беспокоиться о традиционных проблемах доступа с потоками, каждый из которых полностью независим от друг друга, это больше похоже на пакетную обработку, а не на истинное многопоточность программы.
Спасибо,
-Faken