Каков лучший способ, чтобы разработать многопоточную программу, удалить определенные символы из нескольких текстовых файлов, которые передаются в как параметры?
Таким образом, когда кто-то передает как a.out axvc f1 f2 f3 f4, цель состоит в том, чтобы удалить все происшествия символов a, x, v, c из файла f1, f2, f3 и f4.
Разве вы не можете просто использовать обычные утилиты, такие как sed
, чтобы помочь вам в этом?
Даже если нет, уверены ли вы, что Использование ЦП составляет достаточно значительную часть времени обработки, чтобы ее не затмил файловый ввод-вывод? Скорее всего, выполнение этого в нескольких потоках не сэкономит вам много времени, в отличие от последовательного выполнения в одном потоке.
В противном случае, вероятно, самым простым механизмом было бы, чтобы основной поток выполнял ввод-вывод и отправлял работу пулу рабочих потоков, выполняющих удаление символов. Ситуация усложняется, если скорость ввода-вывода действительно увеличивается при выполнении из нескольких потоков.
Есть ли конкретная причина, по которой вы хотите использовать несколько потоков для этого? Если файлы находятся на одном устройстве, это не поможет.