• 0.1. 关于本书 • 0.2. 代码约定 • 0.3. 关于例子 • 0.4. 如何联系我们 1. 核心模块 o 1.1. 介绍 o 1.2. _ _builtin_ _ 模块 o 1.3. exceptions 模块 o 1.4. os 模块 o 1.5. os.path 模块 o 1.6. stat 模块 o 1.7. string 模块 o 1.8. re 模块 o 1.9. math 模块 o 1.10. cmath 模块 o 1.11. operator 模块 o 1.12.
"""
对于操作系统而言,一个任务就是一个进程
单任务现象
"""
from time import sleep
def run():
while True:
print('噫吁戏!危乎高哉!')
sleep(1)
if __name__ == '__main__':
while True:
print('蜀道之难难于上青天')
sleep(1)
run()
对于上述代码,程序只能执行入口函数下边的 whil
python多线程适合IO密集型场景,而在CPU密集型场景,并不能充分利用多核CPU,而协程本质基于线程,同样不能充分发挥多核的优势。
针对计算密集型场景需要使用多进程,python的multiprocessing与threading模块非常相似,支持用进程池的方式批量创建子进程。
•创建单个Process进程(使用func)
只需要实例化Process类,传递函数给target参数,这点和threading模块非常的类似,args为函数的参数
import os
from multiproc
1、注意:pool必须在 if __name__ == ‘__main__’ 下面运行,不然会报错
2、多进程内出现错误会直接跳过该进程,并且默认不会打印错误信息
3、if__name__下面的数据需要通过参数传入主函数里面,不然主函数获取不到该数据值而报错。
4、若不通过传参形式传入数据,可以定义全局变量。但是全局变量的值不能在多进程里面进行修改。
代码如下
from multiprocessing import Pool # 进程池,用于多进程
import os # 用于获取当前执行的文