1.多道技术 见上一节 空间复用 时间复用并发 在同一个时间段内 发生的多个事情,本质是不停切换执行 多个进程随机执行并行 在同一时刻 同时进行多个事情(只有多核处理器才能真实并行)串行 一个一个依...

1.多道技术 见上一节
空间复用
时间复用
并发
在同一个时间段内 发生的多个事情,本质是不停切换执行 多个进程随机执行
并行
在同一时刻 同时进行多个事情(只有多核处理器才能真实并行)
串行
一个一个依次排队执行
第一个任务没执行完 第二个只能等待
阻塞 遇到i/o操作 看起来就是代码卡主了 因为cpu被分配给其他进程
非阻塞 不会卡主代码的执行 只要还拥有cpu的执行权 就不叫阻塞
阻塞 和非阻塞 说的是同一个进程的情况下
多线程后再议!
同步 一个调用必须获得返回结果才能继续执行
异步 一个调用发起后 发起方不需要等待它的返回结果
同步和异步 必须存在多个进程(线程)
无论是进程还是线程都是两条独立的执行路径
思考:多核处理器 能不能真正的并行?
可以 每个核可以单独负责一个任务 这些任务可以同时进行
2.python如何使用多进程 ******
1.直接创建Process对象 同时传入要做的事情就是一个函数
2.创建一个类 继承自Process 把要做的任务放在run方法中
1、创建进程的两种方式
方式一:
from multiprocessing import Process
def task(name):
print('%s is running' %name)
if __name__ == '__main__':
obj=Process(taget=task,args=('egon',))
obj.start() # 发送信号给操作系统
print('主')
task('xxx')
方式二:
from multiprocessing import Process
class MyTask(Process):
def run(self):
print('%s is running' %self.name)
if __name__ == '__main__':
obj=MyTask()
obj.start() # 发送信号给操作系统
2、进程之间地址空间隔离
3.父进程与子进程间的执行顺序 ******
主进程必然先执行
子进程应该在主进程执行后执行
一旦子进程启动了 后续的顺序就无法控制了
4、进程对象的常用属性
obj.start() 开启进程
obj.join(1) 父进程等待子进程
obj.terminate() 终止进程
obj.is_alive() 是否存活
obj.pid 获取进程id
obj.name 进程名称
5、僵尸进程与孤儿进程
僵尸进程:有害
一个进程任务执行完就死亡了 但是操作系统不会立即将其清理
孤儿进程 无害!
没有爹的称为孤儿
织梦狗教程
本文标题为:PYTHON-进程 子进程


基础教程推荐
猜你喜欢
- linux 安装 python3 2023-09-03
- Python爬虫爬取属于自己的地铁线路图 2023-08-05
- 云服务器Ubuntu更改默认python版本 2023-09-03
- MySQL数据优化-多层索引 2023-08-11
- Python+OpenCV实战之实现文档扫描 2022-10-20
- 使用Pycharm创建一个Django项目的超详细图文教程 2022-09-02
- 远程和Ubuntu服务器进行Socket通信,使用python和C#(准备篇) 2023-09-05
- 创建python虚拟环境(在ubuntu16.04中) 2023-09-04
- windows下面使用多版本Python安装指定版本的虚拟环境 2023-09-04
- python验证多组数据之间有无显著差异 2023-08-08