首页 > 科技 >

Python网络编程(进程池、进程间的通信)

2018-08-17 23:04:36 网络整理 阅读:116 评论:0

摘要: Python网络编程 Python进程池 Python进程间的通信

线程池的原理:

线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,

创建一定数量的线程,放入空闲队列中。这些线程都是处于睡眠状态,

即均为启动,不消耗CPU,而只是占用较小的内存空间。当请求到来之后,

缓冲池给这次请求分配一个空闲线程,把请求传入此线程中运行,进行处理。

当预先创建的线程都处于运行状态,即预制线程不够,线程池可以自由创建一定数量的新线程,

用于处理更多的请求。当系统比较闲的时候,也可以通过移除一部分一直处于停用状态的线程。

进程间的通信原理:

OS提供了沟通的媒介供进程之间“对话”用。既然要沟通,如同人类社会的沟通一样,

沟通要付出时间和金钱,计算机中也一样,,必然有沟通需要付出的成本。

出于所解决问题的特性,OS提供了多种沟通的方式,每种方式的沟通成本也不尽相同,

使用成本和沟通效率也有所不同。我们经常听到的 管道、消息队列、共享内存都是OS提供的供进程之间对话的方式。

Process(target, name, args, kwargs)

name:

给进程取名字

默认为Process-1,Process-2.....

p.name 查看进程名

args:

以元组的形式给target函数传参

kwargs:

以字典的形式给对应键的值传参

进程对象的其他常用属性方法:

p.name p.start() p.join()

p.pid:

获取创建进程的pid号

p.is_alive():

判断进程是处于alive状态

p.daemon:

默认为Flase 如果设置为True 主进程结束时杀死所有子进程

daemon属性一定要在start()前设置

相关文章