python并发编程

304 阅读3分钟

并发编程理论

  计算机中真正干活的是CPU
  操作系统发展史
        1.穿孔卡片阶段
        计算机很庞大 使用很麻烦 一次只能给一个人使用 期间很多时候计算机都不工作
        好处:程序员独占计算机 为所欲为
                坏处:计算机利用率太低 浪费资源
  2.联机批处理系统
        提前使用磁带一次性录入多个程序员编写的程序 然后交给计算机执行
        CPU工作效率有所提升 不用反复等待程序录入
        3.脱机批处理系统
        极大地提升了CPU的利用率
        总结:CPU提升利用率的过程
    
    

多道技术

在学习并发编程的过程中 不做刻意提醒的情况下 默认一台计算机就一个CPU(只有一个干活的人)

单道技术
        所有的程序排队执行 过程中不能重合
多道技术
        利用空闲时间提前准备其他数据 最大化提升CPU利用率

多道技术详细
        1.切换
        计算机的CPU在两种情况下会切换(不让你用 给别人用)
        1.程序有IO操作
        输入\输出操作
                inputtime.sleep、readwrite
                2.程序长时间占用CPU	
        我们得雨露均沾 让多个程序都能被CPU运行一下 

  2.保存状态
        CPU每次切换走之前都需要保存当前操作的状态 下次切换回来基于上次的进度继续执行


开了一家饭店 只有一个服务员 但是同时来了五桌客人
        请问:如何让五桌客人都感觉到服务员在服务他们
                让服务员化身为闪电侠 只要客人有停顿 就立刻切换到其他桌 如此往复
                
                

进程理论

进程与程序的区别
        程序:一堆死代码(还没有被运行起来)
        进程:正在运行的程序(被运行起来了)

进程的调度算法(重要)
        1.FCFS(先来先服务)
        对短作业不友好
        2.短作业优先调度
        对长作业不友好
        3.时间片轮转法+多级反馈队列(目前还在用)
        将时间均分 然后根据进程时间长短再分多个等级
    等级越靠下表示耗时越长 每次分到的时间越多 但是优先级越低
    

进程的并行与并发

并行:多个进程同时执行 必须要有多个CPU参与 单个CPU无法实现并行
并发:多个进程看上去像同时执行 单个CPU可以实现 多个CPU肯定也可以

判断下列两句话孰对孰错
        我写的程序很牛逼,运行起来之后可以实现14个亿的并行量
        并行量必须要有对等的CPU才可以实现
  我写的程序很牛逼,运行起来之后可以实现14个亿的并发量
        合情合理 完全可以实现	以后我们的项目一般都会追求高并发
目前国内可以说是最牛逼的>>>:12306

进程的三状态

就绪态:所有的进程在被CPU执行之前都必须先进入就绪态等待
运行态:CPU正在执行
阻塞态:进程运行过程中出现了IO操作 阻塞态无法直接进入运行态 需要先进入就绪态