У меня проблема с кодом ниже и с любым кодом, который использует функцию print
в дочерних процессах. Я не вижу никаких печатных операторов, даже если я использую sys.std[err|out].write('worker')
вместо print
.
Это код (из официальной документации python):
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
Выход пуст.
Примечание. В следующем коде используется модуль потоковой передачи и он выводит результат:
import threading
def f(name):
print 'hello', name
if __name__ == '__main__':
p = threading.Thread(target=f, args=('bob',))
p.start()
p.join()
Выход: hello bob
Не могли бы вы указать мне на решение? Спасибо заранее.