Спасибо, вы только что спасли мою жизнь @Guido, извините за вину, я буду хвалить питона на следующий вопрос.

у поток Python занимает так много памяти?

Я измерил, что порождение одного потока потребляет 8 мегабайт памяти, почти столько же, сколько весь новый процесс Python!

ОС: Ubuntu 10.10

Изменить: из-за широкого спроса я приведу несколько посторонних примеров, вот оно:

from os import getpid
from time import sleep
from threading import Thread

def nap():
    print 'sleeping child'
    sleep(999999999)

print getpid()
child_thread = Thread(target=nap)
sleep(999999999)

На моей коробке pmap pid даст 9424K

Теперь давайте запустим дочерний поток:

from os import getpid
from time import sleep
from threading import Thread

def nap():
    print 'sleeping child'
    sleep(999999999)

print getpid()
child_thread = Thread(target=nap)
child_thread.start()             # <--- ADDED THIS LINE
sleep(999999999)

Теперь pmap pid выдаст 17620К

Таким образом, стоимость дополнительной нити составляет 17620 КБ - 9424 КБ = 8196 КБ.

то есть. 87% запускают совершенно новый отдельный процесс!

Не правда ли, не так ли?

Ответы на вопрос(1)

Ваш ответ на вопрос