Tôi có một vấn đề với mã dưới đây, và với bất kỳ mã mà sử dụng print
chức năng trong quá trình đứa trẻ. Tôi không thể thấy bất kỳ câu lệnh in nào, ngay cả khi tôi sử dụng sys.std[err|out].write('worker')
thay vì print
.quá trình trẻ em tạo ra với mô-đun python đa sẽ không in
Đây là mã (from the official python documentation):
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
Đầu ra là trống.
Note: Đoạn mã sau sử dụng mô-đun threading và nó in kết quả:
import threading
def f(name):
print 'hello', name
if __name__ == '__main__':
p = threading.Thread(target=f, args=('bob',))
p.start()
p.join()
Output: hello bob
bạn có thể vui lòng chỉ cho tôi giải pháp? Cảm ơn trước.
Thanks a lot Tamas, nhưng điều này trong trường hợp của tôi đã không làm việc ... – John
Những nền tảng là bạn không? Các công trình trên cho tôi trên Mac OS X; trên thực tế, nó hoạt động ngay cả khi không xả sys.stdout. –
Tamas, nền tảng tôi đang làm là win32. Nhân tiện, cho đến bây giờ tôi đã cố gắng chạy mã trong IDLE. Hôm nay tôi đã cố gắng để chạy nó từ dòng lệnh, sử dụng cú pháp sau: python.exe my_prog.py và nó làm việc. Bất kỳ ai cũng biết tại sao? Và làm thế nào tôi có thể hiển thị đầu ra in bằng cách chạy các chương trình trong IDLE? – John