Aşağıdaki kodda bir sorun yaşıyorum ve alt işlemlerde print
işlevini kullanan herhangi bir kodla. print
yerine sys.std[err|out].write('worker')
kullanmama rağmen basılı ifadeleri göremiyorum.Python çok işlemcili modülüyle oluşturulan alt süreçler yazdırılamayacak
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
çıkış boştur:
Bu
kodu (from the official python documentation) 'dir.Not: Aşağıdaki kod parçacığı modülü kullanır ve çıktıyı baskı:
import threading
def f(name):
print 'hello', name
if __name__ == '__main__':
p = threading.Thread(target=f, args=('bob',))
p.start()
p.join()
Çıktı: hello bob
beni çözüme işaret edebilir? Şimdiden teşekkürler.
Teşekkürler Tamas, ama bu benim durumumda işe yaramadı ... – John
Hangi platformdasınız? Yukarıdakiler Mac OS X'te benim için; Aslında, sys.stdout kızarmadan bile çalışır. –
Tamas, üzerinde çalıştığım platform win32. Bu arada, bugüne kadar kodu IDLE içinde çalıştırmayı denedim. Bugün bu sözdizimini kullanarak komut satırından çalıştırmayı denedim: python.exe my_prog.py ve çalıştı. Herkes nedenini biliyor mu? Ve IDLE içindeki programları çalıştırarak yazdırma çıktısını nasıl görüntüleyebilirim? – John