python并发编程-进程,并发
1.进程是一个正在运行的程序,或者说是程序运行的过程,进程是个抽象概念
进程起源于操作系统,是操作系统最核心的概念,操作系统所有其他的概念都是围绕进程展开
研究进程最底层就是在研究操作系统底层代码
2.串行 -进程
一个任务完完整整的运行完毕后,在运行下一个任务
3.并发-进程
看起来多个任务是同时运行即可,单核也可以实现并发
4.-并行-进程
真正意义上多个任务的同时运行,只要多核才实现并行
5.cpu的功能:
cpu是用来做计算的,cpu无法执行io操作,一旦遇到io操作,应该让cpu去执行别的任务
6.多道技术原理:
多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,
解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。
1.空间上的复用=》将内存分为几个部分,每个部分放入一个程序,这种同一时间内存中就有多个进程程序
2.时间上的复用-》当一个程序执行io操作时候,另一个程序可以使用cpu。如果内存中可以存放多个进程程序,那么cpu的利用率可以接近100%
(操作系统采用了多道技术后,可以控制进程的切换,或者说进程之间去争抢cpu的执行权限。这种切换不仅会在一个进程遇到io时进行,一个进程占用cpu时间过长也会切换,或者说被操作系统夺走cpu的执行权限)
强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样就可以保证下次切回来时,能基于上次切走的位置继续运行!
7. 两种cpu切换控制:
1,cpu遇到io操作时切换:可以提升效率
2.一个进程占用cpu时间过长也会被切走:并发效果不得已而为之,这样反而会降低程序的执行效率
总结:
写程序最核心的提升效率的方式:就是尽可能减少io操作