尝试多处理,但程序甚至在开始之前就死了

Trying multiprocessing but the program dies before it even starts

我有这个代码:

from multiprocessing import Process, cpu_count

def readplayerinfo():
    y=0
    Gameon = True
    while Gameon:
        y+=1
        print('y',y)
        if y == 50:
            Gameon = False
        
    return None

def main():

    islooping = True

    x=0
    a = Process(target=readplayerinfo,args = ())
    a.start()
    while islooping:
        print('x',x)
        x+=1
        if x == 100:
            islooping = False
    a.join()



if __name__ == '__main__':
    main()

程序的目标是做两个进程,在每个进程中做一个while循环并同时打印y和x(显然最快的先打印)。

但是当我 运行 它时,终端只显示 'x 0' 并且它冻结了

我尽力研究了,但这是我第一次尝试多处理。

所以我的问题是如何进行多处理工作?

编辑:有人告诉我 IDLE ide 的多重处理有问题,所以我转而使用 ubuntu 20.04 中的终端,然后我的输出只有 y 正在打印,然后它冻结了并且从未打印过 x。另外,我执行了 print(cpu_count()) 并返回了 4,所以我认为这不是硬件问题

我尝试了很多方法,但让 x 和 y 交替打印的唯一方法是执行 2 个不同的过程。 x 和 y 会一个接一个地打印,但是它们之间会有轻微的延迟,因为启动 a processe.Plus 的开销,我不知道为什么,但是 IDLE 不能很好地与 multiprocessing 一起工作.所以你需要找到另一个 IDE 或在终端中使用 'python3 (nameofthefile).py'.

from multiprocessing import Process, cpu_count

def secondprocess():
    y=0
    Gameon = True
    while Gameon:
        y+=1
        print('y',y)
        if y == 50000:
            Gameon = False
        
    return None

def firstprocess():
    x = 0
    islooping = True
    while islooping:
        x+=1
        print('x',x)
        if x == 50000:
            islooping = False
            
def main():

    a = Process(target=secondprocess,args = ())
    b = Process(target=firstprocess,args = ())
    a.start()
    b.start()

    a.join()
    b.join()


if __name__ == '__main__':
    main()