并发编程
2023-04-27 13:39:07 3 举报
AI智能生成
python_并发编程概念
作者其他创作
大纲/内容
基础并发概念
进程(process)
是计算中最小的资源分配单位,每一个程序在运行起来的时候需要给分配一些内存
pid
在系统中唯一标识一个进程
top命令
进程的三状态图
就绪
操作系统接收到指令后,分配一块空降给进程,创建对应的进程id,
进入就绪状态
进入就绪状态
当运行状态的进程在执行CPU时间片到了时,状态变更为就绪
当阻塞状态的进程,阻塞结束时,状态变更为就绪
运行
当时间片轮转到当前就绪状态的进程时,进入运行状态
阻塞
程序运行中遇到阻塞事件,进入阻塞状态
进程的调度算法
定义
给所有的进程分配资源或者分配CPU使用权限的一种方法
算法
短作业有限
先来先服务
多级反馈算法
1.多个任务队列,优先级从高到低
2.新来的任务总是优先级最高的
3.每一个新任务几乎会立即获得一个时间片时间
4.执行完一个时间片之后就会将到下一级队列中
5.总是优先级高的任务都执行完才执行优先级低的队列
6.并且优先级越高时间片越短
进程的开启和关闭
子主题
线程(thread)
是计算机中能够被CPU调度的最小单位
线程是实际执行编译解释之后的代码的,所以CPU执行的是线程中编译解释后的代码
并行和并发
并发
多个程序轮流在一个CPU上执行,本质上还是串行
并行(好)
多个CPU各自在自己的CPU上执行多个程序
分布式
同步和异步
同步
调用一个操作,要等待结果
例如:在A事件执行的过程中发起B事件,必须等B事件执行完毕,A事件才能继续执行
异步
调用一个操作,不等待结果
在A事件执行的过程中发起B事件,不需要等B事件执行完毕就可以继续执行A事件
阻塞与非阻塞
阻塞
CPU不工作(不进行计算,遇到IO操作)
input, accept, connect, recv, recvfrom, sleep
非阻塞
CPU在工作(在计算,没有IO操作)
同步阻塞和同步非阻塞
同步阻塞
input sleep recv recvfrom
同步非阻塞
执行A事儿的时候触发了B事件,要等待B事件的计算结果才能继续计算A事件,且全程没有IO操作
异步阻塞和异步非阻塞
异步阻塞
异步非阻塞
操作系统
多道操作系统
遇到IO操作就切换
提高CPU利用率
进程之间数据隔离
时空复用:在同一个时间点上,多个程序同时执行着,一块内存条上存储了多个进程的数据
分时操作系统
时间分片
时间片的流转
IO操作
判断是不是IO操作时相对于内存来说的,数据往内存中写入,就是input,
数据从内存中读取,就是output
数据从内存中读取,就是output
0 条评论
下一页