Вопрос Параллельное программирование в WinAPI (C++)

Регистрация
5 Ноя 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Добрый день!
У меня такая задачка:
Есть текстовый файл с числовой матрицей. Нужно прочесть файл, произвести операцию над значениями (посчитать среднее каждой строчки матрицы) и записать результат в другой текстовый файл.
Но эту задачу нужно распараллелить, чтобы первый поток читал файл, второй делал подсчеты, а третий записывал всё в файл...
Тут скорее всего нужно параллелить по принципу конвейера, то есть, чтобы потоки начинали свою работу со смещением: первый прочитал данные - отправил второму, второй посчитал - отправил третьему. Но, я вот думаю, как лучше это реализовать? Через очереди? И, может, в WinAPI есть что-то полезное, чтобы упростит эту задачу? Не очень знакома с WinAPI, но суть задачи - реализовать именно через него.
Была бы очень благодарна за помощь~
 
1. В цикле: прочитали строку файла 2. Запускаем новый поток, передаем ему через параметры значения из файла 3. при этом получаем идентификатор потока 4. вызываем WaitForSingleObject(идентификатор потока) см. API выполнение останавливается ждет окончания потока 5. Новый поток делает что нужно, запускает третий поток который запишет данные в текстовый файл, а сам завершается; 6. управление возвращается в цикл PS. третий поток - должен ждать пока предыдущий вызванный (третий) не завершит запись строки :)
 
"первый прочитал данные - отправил второму, второй посчитал - отправил третьему." ну и какая это нахрен многопоточность тогда, если они последовательно работают, а не параллельно? операцию саму надо распараллеливать... остальное в общем-то голяк
 
Назад
Сверху