队列 队列:先进先出、数据进程安全 队列实现方式:管道+锁 生产者消费者模型:解决数据供需不平衡 管道 双向通信,数据进程不安全 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理论知识,线程的创建)
原文:https://www.cnblogs.com/Black-rainbow/p/9042623.html