同步阻塞|同步非阻塞|异步阻塞|异步非阻塞
1.同步阻塞
在运行主进程时,创建了子进程,必须等子进程结束才能继续运行,运行过程中发生了阻塞,cpu不工作
2.同步非阻塞
在运行主程序中,创建了子进程,必须等子进程结束才能继续运行,但是cpu在一直工作
下面这段代码就是同步非阻塞,如果给func函数里加一句input(),就成了同步阻塞
变量d要想获取值就必须在函数执行完,这段时间cpu一直在运行,没有阻塞
def func(*args): count =0 for i in range(3): return count a = 1 b =2 c =3 d = func(a,b,c)
3.异步非阻塞
在主进程开多个子进程(异步),cpu在工作(不阻塞)
from multiprocessing import Process import os def func(): print(os.getpid(),os.getppid()) if __name__ == '__main__': #开三个子进程 for i in range(3): p=Process(target=func) p.start()
5908 3200
7088 3200
10216 3200
4.异步阻塞: join会引起阻塞,等待子进程结束
from multiprocessing import Process import os def func(): print(os.getpid(),os.getppid()) if __name__ == '__main__': #开三个子进程 p_l= [] for i in range(3): p=Process(target=func) p_l.append(p) p.start() for p in p_l: #等待每一个进程结束 p.join() print('所有进程都结束了')
1420 4576
4408 4576
7068 4576
所有进程都结束了


浙公网安备 33010602011771号