Прежде всего, если вы читаете io.Reader, считайте его чтением из потока. Это единственный источник входного сигнала, который вы не можете «читать параллельно» из-за его природы - под капотом вы получаете байт, ожидаете другого, получая еще один и т. Д. Токсинирование в словах происходит позже, в буфере.
Во-вторых, надеюсь, вы не пытаетесь использовать goroutines как «серебряную пулю» в «давайте добавим гуротинов и все просто ускорится». Если Go дает вам такой простой способ использования параллелизма, это не значит, что вы должны использовать его везде.
И, наконец, если вам действительно нужно разделить огромный файл на слова параллельно, и вы считаете, что разделяющая часть будет узким местом (не знаю вашего дела, но я действительно сомневаюсь в этом) - тогда вам нужно придумать собственный алгоритм и использовать пакет «os» для поиска()/Read() частей файла, каждый из которых обрабатывается собственным гуротином и каким-то образом отслеживает, какие части уже были обработаны.
Файл IO будет самой медленной частью. Использование процедур go не ускорит этот процесс. – fuz
Зачем вы хотите это сделать? – peterSO