系统编程---进程2 11.23

2017-11-23  本文已影响0人  a荷包蛋

进程

.1multiprocessing

如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows上无法用Python编写多进程的程序?

由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。

                                                               导入multiprocessing模块单进程

                                                                  导入multiprocessing模块单进程

关于daemon

(二)process,写进程的第二种方式:用类

                                                                    多进程

(三)进程池 pool

当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。

初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来执行

(三)进程间通信-Queue

根据结果我们可以发现,两个进程各自拥有各自的资源,包括全局变量也是

此时我们引入queue,构成两个函数间的通信

                                                               常用代码

注意q相当于一个容量池。当程序的运行到第187行是,此时的q定义为容量池。188行.189行是把这个容量池作为参数传给

函数write和函数read.     所以运行172行,是把值放到这个容量池里面,运行到177行,是把值取出来并打印。

上一篇 下一篇

猜你喜欢

热点阅读