python多进程编程 多个函数并发执行_python 并发编程之多进程

本文介绍了Python中的多进程编程,强调了避免数据共享和使用队列、管道进行进程间通信。讲解了如何使用Manager共享数据,以及通过`tasklist`命令检查进程。接着详细阐述了进程池的概念,包括创建进程池、参数说明和方法介绍,并通过示例展示了如何使用`Pool`执行同步和异步任务。最后讨论了同步、异步、串行和并行的区别,并给出了使用进程池处理网络请求的例子。
摘要由CSDN通过智能技术生成

一、数据共享

1.进程间的通信应该尽量避免共享数据的方式

2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。

虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此。

命令就是一个程序,按回车就会执行(这个只是在windows情况下)

tasklist 查看进程

tasklist| findstr pycharm #(findstr是进行过滤的),|就是管道(tasklist执行的内容就放到管道里面了,

管道后面的findstr pycharm就接收了)

二、进程池

在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。多进程是实现并发的手段之一,需要注意的问题是:

很明显需要并发执行的任务通常要远大于核数

一个操作系统不可能无限开启进程,通常有几个核就开几个进程

进程开启过多,效率反而会下降(开启进程是需要占用系统资源的,而且开启多余核数目的进程也无法做到并行)

例如当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,十几个还好,但如果是上百个,上千个。。。手动的去限制进程数量却又太过繁琐,此时可以发挥进程池的功效。

那么什么是进程池呢?进程池就是控制进程数目

ps:对于远程过程调用的高级应用程序而言,应该使用进程池,Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,就重用进程池中的进程。

进程池的结构:

创建进程池的类:如果指定numprocess为3,则进程池会从无到有创建三个进程,然后自始至终使用这三个进程去执行所有任务,不会开启其他进程

进程池的结构:

创建进程池的类:如果指定numprocess为3,则进程池会从无到有创建三个进程,然后自始至终使用这三个进程去执行所有任务,不会开启其他进程

1.创建进程池

Pool([numprocess [,initializer [, initargs]]]):创建进程池

2.参数介绍

numprocess:要创建的进程数,如果省略,将默认为cpu_count()的值,可os.cpu_count()查看<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值