网络并发编程
一. 进程
1.1 什么是程序、什么是进程
程序: 一堆没有被执行的代码(死的)
进程:正在运行的程序(活的)
1.2 为什么有进程的概念
为了更加精确的描述出一些实际状态
1.3 进程调度算法发展史
'''目的就是为了能够让单核的计算机也能够做到运行多个程序'''
1.先来先服务
对短作业任务不太友好
2.短作业优先
对长作业任务不太友好
3.时间片轮转法与多级反馈队列
时间片轮转法:先公平的将CPU分给每个人执行
多级反馈队列:根据作业长短的不同再合理分配CPU执行时间
二. 并发与并行
1. 并发
看上去像同时在执行就可以称之为是并发
2. 并行 >>>> """单核计算机肯定不能实现并行!!! 必须要有多个CPU"""
必须同一时间同时运行才可以称之为并行
三. 同步与异步-阻塞与非阻塞
3.1 同步与异步
1. 同步
提交完任务之后原地等待任务的返回结果 期间不做任何事情
2. 异步
提交完任务之后不愿地等待任务的结果 直接去做其他事情 有结果自动提醒
3.2 同步异步与阻塞非阻塞结合
同步异步:用来描述任务的提交方式
阻塞非阻塞:用来描述任务的执行状态
上述两组属于两个不同概念 但是可以结合
同步阻塞:银行排队办理业务 期间不做任何事
同步非阻塞:银行排队办理业务 期间喝水吃东西 但是人还在队列中
异步阻塞:在椅子上坐着 但是不做任何事
异步非阻塞:在椅子上坐着 期间喝水吃东西办公 (程序运行的极致)