Вы говорите, что общая задача - прочитать большой файл и обработать каждую строку.
Во-первых, вам нужна стратегия, чтобы разделить работу. Один процесс может прочитать весь файл, а затем отправить его остальным, может иметь смысл, если ваш диск работает очень медленно, а сеть работает очень быстро, но, скорее всего, вы захотите разделить задачу чтения.
Часто вы можете делать это без явной связи между процессами. Просто попросите первый процесс прочитать первые 25% байтов файла, затем продолжайте чтение, пока не увидите еще одну новую строку. Второй процесс читает от 25% до 50% в файле, затем продолжается до тех пор, пока не увидит еще одну новую строку. И так далее.
Таким образом, все, что вам нужно сделать, это сообщить процессам три факта при запуске:
- Путь к файлу.
- Количество процессов (N), которые будут обрабатывать файл.
- Индекс каждого конкретного процесса (от 0 до N), так что он может определить, какую часть считать.