jackfrued / Python-100-Days

Python - 100天从新手到大师

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

day 13 通过Queue实现多进程简单通信

Aprilhui opened this issue · comments

from multiprocessing import Process,Queue,set_start_method
from time import sleep
counter = 0


def sub_task(string,q):
    a = q.get()
    sleep(0.01)
    while a < 10:
        if q.empty():
            q.put(a+1)
            sleep(0.01)
            print(string, end = '', flush=True)
            a = q.get() 
    if q.empty():
        q.put(a+1)
        sleep(0.1)
    return 

def main():
    #mac os 上运行会有错误
    set_start_method('fork')
    q = Queue()
    q.put(0)
    p1 = Process(target=sub_task,args=('ping',q))
    p2 = Process(target=sub_task,args=('pong',q))
    p1.start()
    p2.start()
    
if __name__ == '__main__':
    main()

我昨天在mac中也遇到了这个error 看来还真的会区分系统