并发编程理论

网络编程

  • 研究网络编程其实就是在研究计算机的底层原理

    计算机中 CPU 才是真正干活的人

并发编程理论

发展史:

1.穿孔卡片

一次只能给一个人使用电脑   cpu利用率极低

2.联机批处理系统

 一次性可以录入多个程序员编写的程序(eg:磁盘,硬盘)、 缩短了cpu等待的时间.不用反复等待程序录入的, 提高了cpu的利用率

3.脱机批处理系统

是现代计算机核心部件的雏形,极大地提升了CPU的利用率,

多道技术

单道技术

所有的程序排队执行,执行完一个程序才会执行下一个程序,过程中不能重合。
	浪费了资源,耗时长

多道技术

利用空闲的时间 提前准备其他数据,最大化的压榨CPU的性能提升利用率, 打工人想休息是不可能的

多道技术的两种状态:
1. 切换:
	运行中的程序有IO操作时,(输入\输出操作),此时cpu就会利用这个空档去执行另一个程序。
2. 保存:
	如果cpu利用空档去执行别的程序的时候,会把上一个程序保存,下次回来基于保存的进度 继续执行。

进程理论

  • 进程与程序的区别
1.程序:
	就是我们编写的代码还没运行起来 也称为:死代码
2.进程:
	系统当前正在运行的程序

进程的调度算法(重要)

1."FCFS 先来的先服务"
	如果我们手里有几个程序代码,有短的,有长的,如果长的先来了,那么占用时间比较长。 对短作业不友好。
2."短作业优先调度"
	顾名思义就是短的先来, 这样如果短的特别多对长的也不友好。
3."时间片轮转法+ 多级反馈队列"
	将时间均分给每个程序,根据进程时长短,在进行分级。
    等级越靠下表示耗时越长(代码很多),每次分级分到的时间就会越多优先级越低。   如果有新代码来了优先执行短代码

并行与并发

1.并行
	多个进程同时执行,就是多个cpu一起干活,单个cpu无法实现
2.并发
	多个进程看起来像同时执行
   这个过程就是让CPU在对个程序之间利用多道技术来回切换+保存状态
 单个CPU"(单核)"可以实现 多个CPU肯定也可以

    
 # 高并发和高并行
  高并发: 就是程序能够支持几个亿的并发量
        就是这几个亿的用户来到可以感受到自己被服务着的意思  eg: 12306
  高并行: 写的软件可以支持几个亿的并行(当然我们还是无法实现)
    支持几个亿的并行,就代表这个计算机要有几个亿的CPU,

进程的三状态

就绪态
	所有程序再被CPU执行之后都必须先进入就绪态等待
运行态
	CPU正在执行
阻塞态
	进程运行过程中出现了IO操作 阻塞态无法直接进入运行态 需要先进入就绪态。
posted @ 2022-11-17 20:17  李阿鸡  阅读(26)  评论(0编辑  收藏  举报
Title