Python多处理启动方法不支持';不要运行这个过程
我是多道处理新手,我正在尝试检查是否可以使用以下代码同时运行两个进程:Python多处理启动方法不支持';不要运行这个过程,python,multithreading,python-2.7,multiprocessing,Python,Multithreading,Python 2.7,Multiprocessing,我是多道处理新手,我正在尝试检查是否可以使用以下代码同时运行两个进程: import random, time, multiprocessing as mp def printer(): """print function""" z = random.randit(0,60) for i in range(5): print z wait = 0.2 wait += random.randint(1,60)/100
import random, time, multiprocessing as mp
def printer():
"""print function"""
z = random.randit(0,60)
for i in range(5):
print z
wait = 0.2
wait += random.randint(1,60)/100
time.sleep(wait)
return
if __name__ == '__main__':
p1 = mp.Process(target=printer)
p2 = mp.Process(target=printer)
p1.start()
p2.start()
尽管我使用is.alive()方法检查了进程是否正在运行,但这段代码没有在控制台上打印任何内容
但是,我可以使用以下方式打印某些内容:
p1.run()
p2.run()
问题1:为什么start()方法不运行该过程
问题2:在使用run()方法运行代码时,为什么会得到这样的序列
25,25,25,25,25,11,11,11,11,11
而不是像
25,25,11,25,11,11,11,25,11,25
这个过程似乎一个接一个地运行
我想使用多处理在多个文件上使用相同的函数来并行文件转换。我通过添加
from multiprocessing import Process
但是,我没有两个数字的随机序列,模式总是a,B,a,B。。如果您知道如何显示这两个进程同时运行,欢迎您提出任何想法 直接说来,第4行似乎有一个额外的引号。。。这意味着代码的其余部分是一个字符串。我建议删除“print function”之后的额外引号,然后重新测试代码?您正在生成一个随机整数,并以范围(5)打印到控制台5次。复制代码时出现错误,问题不是从这里来的:)我生成一个随机数一次,但以随机延迟打印它五次,以便在同时运行两个进程时有一个随机序列。代码看起来不错,除了打字错误。你确定你的系统上有多个可用的CPU吗?@YtsendeBoer我的笔记本电脑上有4个内核。我试着让它在另一台有更多内核(8+)的电脑上运行,结果是一样的。在每次打印语句后执行
sys.stdout.flush()。当然,您还需要导入系统。我面临同样的问题。你找到解决办法了吗?