python进阶 进程 线程

并发(parallel) 和并发(concurrency)?

并行: 同一时刻多个任务同时在运行.

并发:在同一时间间隔内多个任务都在运行, 但是并不会在同一时刻同时运行, 存在交替执行的情况

实现并行的库有: multiprocessing

实现并发的库有:threading

程序需要执行较多的读写,请求和回复任务的需要大量的IO操作, IO密集型操作使用并发更好.

CPU运算量大的程序, 使用并行会更好.

线程是并发还是并行?进程是并发还是并行?

线程是并发, 进程是并行;
进程之间相互独立, 是系统分配资源的最小单位, 同一个进程中的所有线程共享资源

IO密集型和CPU密集型的区别?

IO密集型: 系统运作, 大部分的情况是CPU在对I/O(硬盘/内存)的读/写
CPU密集型: 大部分时间用来做计算, 逻辑判断等CPU动作的程序称为CPU密集型

Python中的进程与线程的使用场景?

多进程适合在CPU密集型操作(CPU指令比较多, 如位数多的浮点运算).
多线程适合在IO密集型操作(读写数据操作较多的, 比如爬虫)

线程: 调度执行的最小单位,也叫执行路径,不能独立存在, 依赖进程存在. 一个进程至少有一个线程,叫主线程,而多个线程共享内存(数据共享,共享全局变量),从而极大地提高了程序的运行效率.

协程:是一种用户态的轻量级线程,协程的调度完全由用户控制.协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值