Я новичок в процессе обмена данными и искал ввод и руководство по наилучшему способу достижения следующего: у меня есть функция, которая конвертирует изображение из одного формата в другой, и я хотите, чтобы выполнял конверсии пакетных изображений с использованием нескольких процессов.Обработка нескольких файлов с использованием дочерних процессов и Boost
- У меня есть 1000 изображений, которые я хочу, чтобы преобразовать из одного формата в другую
- я создаю 6 дочерних процессы и хотел отправить их имя файла изображения в процесс: один ребенок один образом для преобразования.
Должен ли я просто создать 6 очереди сообщений и отправить один к каждому из процесса или лучше создать одну очередь сообщений хранения вектора имен изображений и отправить вектор процессу 6 ребенка?
Как я могу связать результат одного дочернего процесса с родительским процессом? И как я могу продолжать отправлять работу в процесс, пока я не закончил с 1000 файлами?
Я использую C++, Windows и обучение Boost.
Благодаря
Джефф
Thanks 'fhsilva' для вашего ответа. Да, мне нужно несколько процессов, потому что для преобразования файлов используется сторонняя библиотека, которая не является потокобезопасной. Именно по этой причине мне понадобилось несколько процессов для решения проблемы безопасности потоков. Подход, который вы указали, также относится к процессам. Мне было интересно, есть ли какой-нибудь пример кода для этого, поскольку я хотел, чтобы процессы были заняты, и как только это делается с одним изображением, получите следующее изображение для обработки. –
Сначала я предлагаю вам проверить, что делает библиотеку небезопасной. Возможно, вы можете обойти это с помощью подхода нитей. Обратите внимание: если библиотека что-то пишет в файловую систему, у вас могут быть проблемы даже с разными процессами. Помимо этого я рекомендую вам взглянуть на [MSDN] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574 (v = vs.85) .aspx). Проверьте также этот полезный [ответ] (http://stackoverflow.com/questions/7127242/fastest-ipc-method-on-windows-7). – fhsilva
Еще раз спасибо. У меня нет исходного кода сторонней библиотеки, поэтому я не могу заглянуть и попытаться сделать его потокобезопасным. –