首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多处理python工作正常时,预期将工作不好

多处理python工作正常时,预期将工作不好
EN

Stack Overflow用户
提问于 2016-03-07 15:12:47
回答 1查看 82关注 0票数 1

这是代码:

代码语言:javascript
复制
from time import sleep
from random import random

from multiprocessing import Process

def f():
    for i in range(5):
        print("hola" , i)
        sleep(random())

if __name__ == "__main__":
    p = Process(target=f)
    q = Process(target=f)
    p.start()
    q.start()
    print("fin")
    ## sleep(1000)

这是我一直得到的输出:

代码语言:javascript
复制
fin
('hola', 0)
('hola', 1)
('hola', 2)
('hola', 3)
('hola', 4)
('hola', 0)
('hola', 1)
('hola', 2)
('hola', 3)
('hola', 4)

但是代码不包含任何东西来阻止这两个进程混合,那么为什么它们不混合呢?

Windows 8,Python 2.7,使用anaconda中spyder的最后版本

EN

回答 1

Stack Overflow用户

发布于 2016-03-07 15:24:32

我将冒险说这是Windows:只需在上运行Python2.7.10的示例,我就会得到一个更预期的结果:

代码语言:javascript
复制
In [27]: def f():
   ....:         for i in range(5):
   ....:                 print("hola" , i)
   ....:                 sleep(random())
   ....:         

In [28]: if __name__ == "__main__":
   ....:         p = Process(target=f)
   ....:         q = Process(target=f)
   ....:         p.start()
   ....:         q.start()
   ....:         print("fin")
   ....:     
fin

In [29]: ('hola', 0)
('hola', 0)
('hola', 1)
('hola', 2)
('hola', 1)
('hola', 3)
('hola', 4)
('hola', 2)
('hola', 3)
('hola', 4)

看看这是否有用:https://docs.python.org/2/library/multiprocessing.html#windows

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35847207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档