我正在探索 Python 多处理模块,但不明白为什么以下代码根本不打印任何内容。如果没有 while 循环,程序将按预期打印 Worker_1。
import multiprocessing, time
def worker1():
print 'Worker_1'
while 1:
print 'Worker_1'
time.sleep(3)
return
if __name__ == '__main__':
jobs = []
p = multiprocessing.Process(target=worker1)
jobs.append(p)
p.start()
在我的系统(Linux 上的 Python 2.6&2.7)上,这按预期工作。您使用哪个平台?在某些平台(Windows)上,fork
必须通过创建一个全新的流程并进行设置来进行模仿。我怀疑有些stdout
不会转移到子进程。尝试:
- The 线程 http://docs.python.org/library/threading.html模块。如果您只想等待线程中的事件就足够了。
- 在 POSIX 兼容平台(例如 BSD、Linux 或 Solaris)上运行程序
- 输出到文件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)