shizaВесь код (читай: всё, что написано на C) будет общий, а вот адресное пространство копируется, то есть каждый процесс имеет свою копию данных (питоновский код в данном случае тоже является данными).
У меня такое подозрение - что этот fork жрет дофига памяти.
Там же небось на каждый форк уходит своя копия питона?
Вообще это миф, что при использовании fork будет намного меньше проблем, чем при использовании threads. Нет проблем, если сразу после fork в одном процессе выполняется exit() или exec*() (для последнего случая на некоторых платформах существует vfork, который адресное пространство не копирует, тем самым делая операцию очень быстрой). fork вообще очень плохо дружит с ООП. Например, если вы сконструировали объект до вызова fork, а деструктор вызывается после, то он будет вызвал несколько раз. С внутренними данными проблем не возникает, зато они есть, если вы в деструкторе подчищаете какие-то внешние ресурсы.