"Я проверил это, и оно выглядит хорошо, но я также слышал, что процессы, в отличие от потоков, не могут делиться большой информацией ..."
Это только частично верно.
Потоки являются частью процесса - потоки разделяют память тривиально. Это такая же проблема, как и помощь: два потока со случайным игнорированием друг друга могут перезаписать память и создать серьезные проблемы.
Однако процессы обмениваются информацией через множество механизмов. Конвейер Posix (a | b
) означает, что процесс a и процесс b совместно используют информацию - a записывает ее, а b читает ее. Это очень хорошо работает для многих вещей.
Операционная система назначит ваши процессы каждому доступному ядру так же быстро, как вы их создадите. Это очень хорошо работает для многих вещей.
Stackless Python не связан с этим обсуждением - он быстрее и имеет другое планирование потоков. Но я не думаю, что темы - лучший путь для этого.
«Я думаю, что моей программе нужно будет поделиться большим количеством информации.»
Вы должны решить это в первую очередь. Затем определите, как структурировать процессы вокруг потока информации. «Трубопровод» очень легко и естественно сделать; любая оболочка создаст конвейер тривиально.
«Сервер» - это другая архитектура, в которой несколько клиентских процессов получают и / или помещают информацию в центральный сервер. Это отличный способ поделиться информацией. Вы можете использовать эталонную реализацию WSGI как способ создания простого и надежного сервера.