标签:def apply 操作 进程 线程 syn 输出 信号量 理论知识
队列
队列:先进先出、数据进程安全
队列实现方式:管道+锁
生产者消费者模型:解决数据供需不平衡
管道
双向通信,数据进程不安全
EOFError:
管道是由操作系统进行引用计数的
必须在所有进程中关闭管道后才能生成EOFError异常
数据共享(不常用)
Manager
list dict 数据进程不安全的
进程池
存放进程的容器
在进程创建之初,创建固定个数的进程
会被多个任务循环利用
节省了进程创建和销毁的时间开销
降低了操作系统调度进程的压力
信号量和进程池的区别
信号量:n个任务开启n个进程,
但同一时间只能有固定个数的进程在执行
进程在等待被执行
进程池:n个任务开启固定个数的进程
因此同一时间只能有固定个数的进程在执行
任务在等待被执行
队列是内置锁的,所以别的应用调用它,是安全的。
凡是涉及到手动加锁的,都是不安全的。常用的一般都是消息中间件
没有返回值的铅矿
close和join成对使用
import time
from multiprocessing import Pool
def wahaha(i):
time.sleep(1)
print(‘*‘ * i)
if __name__ == ‘__main__‘:
p = Pool(5) # 建议的数量是CPU核数+1
for i in range(5):
p.apply_async(func=wahaha, args=(i,))
p.close() # 不能再提交新的任务
p.join() # 等待池中的任务都执行完
执行输出:

python全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python理论知识,线程的创建)
标签:def apply 操作 进程 线程 syn 输出 信号量 理论知识
原文地址:https://www.cnblogs.com/Black-rainbow/p/9042623.html