为什么要引入协程

随口说

  • 进程创建了一个个线程小弟用来给它服务,线程做小弟做久了,心想我也弄几个手下啊,然后它也背着操作系统偷偷整了几个小弟,给他干活,这几个小弟就是协程了。

介绍

  • 协程,就是线程创建的执行体,同样线程需要维护每个协程执行入口,栈基,栈指针和执行现场等,用来不同协程进行切换。由于用户态不能操作内核空间,所以协程只存在于用户空间中,操作系统是浑然不知的。

原因

  • 既然切换也得保存现场、也得各种设置寄存器,那么它和本来的线程区别在哪
  • 首先,它是更加灵活、轻量级的,因为现在CPU、内存啥的确实厉害,线程这么大小的量级对于它们的计算速度来说,还是有点大的,所以就再小一点。
  • 其次,现在高并发场合随处可见,各种移动设备每天产出大量数据,同时涌入如此多的数据,多开一些协程,压力就会小一些。毕竟线程切换还是需要用户态、内核态的转换,但是协程的话,只在用户空间中使用,所以不存在这个问题。
  • 最后,让协程大放异彩的是其在I/O多路复用中的使用,具体细节另写一篇吧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值