python进程,线程,协程简介

基本概念

进程

  • 进程是执行中的计算机程序。一个进程具有:就绪,运行,中断,僵死,结束等状态(不同操作系统不一样)
  • 进程是系统进行资源分配和调度的独立单位;运行中每个进程都拥有自己的地址空间、内存、数据栈及其它资源
  • 操作系统本身自动管理着所有的进程(不需要用户代码干涉),并为这些进程合理分配可以执行时间。
  • 进程可以通过派生新的进程来执行其它任务,不过每个进程还是都拥有自己的内存和数据栈等
  • 进程间可以通讯(发消息和数据),采用 进程间通信(IPC) 方式。

线程

  • 线程是进程的实体,是CPU调度和分派的基本单位;
  • 一个进程下可以运行多个线程,这些线程之间共享主进程内申请的操作系统资源,不会像进程那样需要申请CPU等资源,节省资源
  • 线程无法给予公平执行时间,它可以被其他线程抢占,而进程按照操作系统的设定分配执行时间

协程

  • 协程也是线程,称微线程,自带CPU上下文,是比线程更小的执行单元;
  • 协程间是协同调度的,非抢占式或合作型,我们自己处理上下文切换,切换开销更小,操作系统完全感知不到,属于程序级别的切换,且没有锁或者线程的开销,非常轻量级,异步版本可能还会比多线程版本快一些
  • 单线程内就可以实现并发的效果,最大限度地利用cpu
  • 协程需要自己处理上下文切换,所以我们需要一个调度程序,也叫做『事件循环』。此事件循环只循环遍历等待中的调度,并运行它的所有事件。每当我们产生操作时,当前任务会被添加到队列中,且第一个任务(优先级而非顺序)从队列中弹出并开始执行
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值