python-多线程编程 之进程(一)
1.进程
进程就是程序执行的载体。
进程的应用:我们打开的每个软件、游戏,执行的每一个Python脚本都是启动一个进程。
每一个进程像人一样需要吃饭,它的粮食就是CPU和内存。
2.多进程
同时启动多个软件(进程),多个进程同时在执行程序,他们之间互不干扰,各自执行自己的业务逻辑。
多进程与并行的概念:
3.多进程的问题
通过进程模块执行的函数无法获取返回值。
多个进程同时修改文件可能会出现错误。
进程数量太多可能会导致资源不足,甚至死机的情况。
4.进程的创建
multiprocessing模块
注意: target 是指定一个函数子进程, args 指的是给指定的这个函数传递的参数。 若函数的参数为空,则不用写args。 如果有多个,则是一个元组形式传递
5.主进程和子进程:
6.
执行结果:
- apply_async(函数 , (参数 , )) ,这里参数的后面必须要有一个逗号,才能调用子进程
- 如果要调用的参数有两个参数,那就apply_async(函数 , (参数1 , 参数2 , )) ,有一点要注意,每个参数在被调函数中必须要有使用到,不然也不会正常运行子线程。
示例:
输出结果:由结果看出,每个进程的id都不同,也有重复的,进程池中的进程反复使用,不会被关闭。会先执行5个,过了5s后再执行5个
示例:
输出结果:
示例
输出结果: 每次都有一个进程在执行
示例:
输出结果:此时程序并不会关闭,因为程序不知道何时要退出
程序退出的示例
输出结果:程序退出