此代码在 Mac/Linux 中运行良好,但在 Windows 中运行不佳。
导入映射 导入操作系统 地图 = mmap.mmap(-1, 13) 地图.write(“你好世界!”) pid = os.fork() if pid == 0: # 在子进程中 打印“孩子” 地图.seek(0) 打印map.readline() 地图.close() 别的: 打印“父母”
我有这个非常简单的功能,我正在尝试运行和测试,但是,它没有输出任何东西,它也没有任何错误.我已多次检查代码,但没有任何错误.
我打印了工作,这是我得到的:
[<Process(Process-12, stopped[1])>,
<Process(Process-13, stopped[1])>,
<Process(Process-14, stopped[1])>,
<Process(Process-15, stopped[1])>,
<Process(Process-16, stopped[1])>]
Run Code Online (Sandbox Code Playgroud)
这是代码:
import multiprocessing
def worker(num):
print "worker ", num
return
jobs = []
for i in range(5):
p = multiprocessing.Process(target = worker, args = (i,))
jobs.append(p)
p.start()
Run Code Online (Sandbox Code Playgroud)
这是我期待的结果,但它没有输出任何东西:
Worker: 0
Worker: 1
Worker: 2
Worker: 3
Worker: 4
Run Code Online (Sandbox Code Playgroud) 我如何在Python3.3中使用fork()这是我的代码:
输入:
#!/usr/bin/env python
import os
def Child_process():
print("We are in Child_Process")
print("My PID: %d"%os.getpid())
print("Child_Process is exiting")
def Parent_process():
print("-------Parent_process---------")
wpid = os.fork()
if wpid==0:
print("wpid is 0 means We are in Child_process")
print("Child :%d"%wpid)
Child_process()
else:
print("Execute Parent_process")
print("Parent_process %d"%wpid)
Parent_process()
Parent_process()
Run Code Online (Sandbox Code Playgroud)
输出:
C:\Python33\python.exe C:/Users/Iem-Prog/Desktop/Py/Fork
Traceback (most recent call last):
File "C:/Users/Iem-Prog/Desktop/Py/Fork", line 21, in <module>
-------Parent_process---------
Parent_process()
File "C:/Users/Iem-Prog/Desktop/Py/Fork", line 11, in Parent_process
wpid = os.fork()
AttributeError: 'module' object has no attribute 'fork'
Run Code Online (Sandbox Code Playgroud)