同步阻塞|同步非阻塞|异步阻塞|异步非阻塞

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
所有进程都结束了

 

posted @ 2021-02-03 11:42  苦行僧冬*婷  阅读(71)  评论(0)    收藏  举报