python 并发

Posted pythonzrq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 并发相关的知识,希望对你有一定的参考价值。

并发概念

# 进程 : 进行中的程序就是一个进程
    占用资源 需要操作系统调度
    pid : 能够唯一标识一个进程
    计算机中最小的资源分配单位
# 并发
    多个程序同时执行 : 只有一个cpu,多个程序轮流在一个cpu上执行
    宏观上 : 多个程序在同时执行
    微观上 : 多个程序轮流在一个cpu上执行 本质上还是串行
# 并行
    多个程序同时执行,并且同时在多个cpu上执行
# 同步
    在做A事的时候发起B件事,必须等待B件事结束之后才能继续做A事件
# 异步
    在做A事的时候发起B时间,不需要等待B事件结束就可以继续A事件
# 阻塞
    如果CPU不工作  input accept recv recvfrom sleep connect
# 非阻塞
    CPU在工作
# 线程
    线程是进程中的一个单位,不能脱离进程存在
    线程是计算机中能够被CPU调度的最小单位

 

I/O操作

技术图片
I/O操作 相对内存来说
输入Input输出Output
输入是怎么输入 :键盘\input\read\recv
输出是怎么输出 :显示器 打印机 播放音乐\print\write\send
文件操作 :read write
网络操作 :send recv recvfrom
函数     :print input
View Code

计算机的工作分为两个状态:

技术图片
计算机的工作分为两个状态
    CPU工作   : 做计算(对内存中的数据进行操作)的时候工作
    CPU不工作 : IO操作的时候
CPU的工作效率 500000条指令/ms
View Code

多道操作系统

技术图片
多道操作系统 :一个程序遇到IO就把CPU让给别人
    顺序的一个一个执行的思路变成
    共同存在在一台计算机中,其中一个程序执行让出cpu之后,另一个程序能继续使用cpu
    来提高cpu的利用率
    单纯的切换会不会占用时间 : 会
    但是多道操作系统的原理整体上还是节省了时间,提高了CPU的利用率
    时空复用的概念
View Code

分时操作系统

技术图片
单cpu 分时操作系统 : 把时间分成很小很小的段,每一个时间都是一个时间片,
每一个程序轮流执行一个时间片的时间,自己的时间片到了就轮到下一个程序执行 -- 时间片的轮转
    老教授 24h全是计算 没有io
        先来先服务 FCFS
    研究生 5min全是计算 没有io
        短作业优先
    研究生2 5min全是计算 没有io
    没有提高CPU的利用率 \ 提高了用户体验
View Code

 

 

进程

进程的三状态图

就绪 运行 阻塞

# 就绪 -操作系统调度->运行 -遇到io操作-> 阻塞 -阻塞状态结束-> 就绪
           -时间片到了-> 就绪

 

multiprocess模块多进程

multiple 多元化的

processing 进程

multiprocessing 多元的处理进程的模块

 

Process类

 

以上是关于python 并发的主要内容,如果未能解决你的问题,请参考以下文章

Python并发编程-线程

Python并发编程-线程

并发编程路线

python下的并发编程

Python学习:python并发编程之协程

Python - 并发编程