江湖散人 发表于 2021-8-28 14:17:27

多进程的执行顺序问题

from multiprocessing import Process


def func():
    for i in range(1000):
      print("外进程", i)


if __name__ == '__main__':
    p = Process(target=func)
    p.start()
    for i in range(1000):
      print("内进程", i)


这是我照视频上抄下来的程序,按照多进程执行顺序来说,应该是有很多地方会同时执行。
但是我的执行结果却是,先执行内进程,然后才执行外进程。
这样正常吗?
哪位前辈帮忙看一下啊。谢谢啊

白two 发表于 2021-8-28 14:44:02

正常,你你是有多看不起计算机?抢到资源的那一会就运行完了
数字往大了整,你看这样:
from multiprocessing import Process


def func():
    for i in range(100000):
      print("外进程:::::", i)


if __name__ == '__main__':
    p = Process(target=func)
    p.start()
    for i in range(100000):
      print("内进程", i)

运行结果(挑了一段混着的):
内进程外进程::::: 92647
84001内进程
外进程:::::8400292648

外进程::::: 84003内进程
外进程::::: 92649
内进程 8400492650

外进程::::: 内进程84005 92651
外进程::::: 84006
外进程:::::
84007内进程
92652外进程::::: 84008
外进程:::::
84009内进程
外进程:::::8401092653

内进程 92654
内进程外进程:::::9265584011

内进程 92656外进程:::::
内进程 92657
内进程84012
外进程::::: 8401392658

最好加一个锁啥的限制,不然就会像这样很乱

江湖散人 发表于 2021-8-28 14:57:39

白two 发表于 2021-8-28 14:44
正常,你你是有多看不起计算机?抢到资源的那一会就运行完了
数字往大了整,你看这样:



哈哈。我看视频上老师讲的也就是1000,我也就照单全收了,也没改,反复运行,以为是哪出问题了。
还有就是你说的锁是啥呀?怎么加?

白two 发表于 2021-8-28 17:43:00

就是你一个进程进行某一个操作的时候禁止另一个进程进行操作
你自己搜一下吧
菜鸟教程上面有线程的锁的解释,和进程有些类似

江湖散人 发表于 2021-8-28 23:13:32

白two 发表于 2021-8-28 17:43
就是你一个进程进行某一个操作的时候禁止另一个进程进行操作
你自己搜一下吧
菜鸟教程上面有线程的锁的解 ...

谢谢你啊
页: [1]
查看完整版本: 多进程的执行顺序问题