开发者

详解Python的多任务进程

开发者 https://www.devze.com 2022-12-08 13:20 出处:网络 作者: 小Pawn爷
目录1.基本概念2.线程和进程比较3.协程和线程的比较总结1.基本概念 定义含义并发:concurrency编程客栈,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行并行parallel,同一时刻,有多条指令在多个
目录
  • 1.基本概念
  • 2.线程和进程比较
  • 3.协程和线程的比较
  • 总结

1.基本概念

定义含义
并发:concurrency编程客栈,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行
并行parallel,同一时刻,有多条指令在多个处理器上同时执行,并行必须要依赖于多个处理器
阻塞程序未得到所需计算资源时被挂起的状态
非阻塞程序在等待某操作过程中,自KBIxoP身不被阻塞,可以继续处理其他的事情
同步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,我们称这些程序单元是同步执行的
异步为完成某个任务,不同程序单元之间过程中无需通信协调,也能完成任务的方式,不相关的程序单元之间可以是异步的

2.线程和进程比较

名称含义应用场景
多线程系统进行运算调度的最小单位IO密集型(磁盘IO网络IO数据库IO等,譬如爬虫,网站开发等)
多进程系统进行资源分配的最小单位CPU密集型(大数据分析,机器学习等)
多协程程序员级别的调度高并发的场景

3.协程和线程的比较

多线程:

  • 多个线程切换需要频繁的加锁解锁KBIxoP,
  • 需要保存或者恢复cpu上下文,
  • 每个线程还需要有缓存cache等数据

多协程:

  • 协程的切换是在单线编程客栈程里实现任务的切换
  • 且协程拥有自己的寄存器上下文和栈,无需线程上下文KBIxoP切换的开销
  • 无需原子操作锁定及同步的开销

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号