摘要: 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()前设置