首页 > 解决方案 > Python 和多处理

问题描述

import multiprocessing

def main(a):
    while True:
        print(a)

p = multiprocessing.process(target=main(1))
p0 = multiprocessing.process(target=main(2))
p.start()
p0.start()

如果您运行代码,它只会打印:

1
1
1
1
1
1
1
1

它实际上应该输出这样的东西

1
2
1
1
2
2
2
1
2
1
2

我该如何解决这个问题:我从今天早上开始就在做研究。请发送帮助。

标签: pythonpython-3.xparallel-processingmultiprocessing

解决方案


这符合您的要求吗?

from multiprocessing import Process

def fun(a):
    while True:
        print(a)

if __name__ == '__main__':
    p = Process(target=fun, args=(1,)) # that's how you should pass arguments
    p.start()
    p1 = Process(target=fun, args=(2,))  
    p1.start()

输出:

1
2
1
2
2
2
2
2
2
1

推荐阅读