协程
跟进程和线程放在一起,只不过相比其他两个更少的关注度。
定义:
一种用户态的轻量级线程,完全由用户调度控制,拥有自己的寄存器上下文和栈,协程调度切换的时候,先将寄存器上下文和栈保存到其他地方,切换回来的时候再恢复之前保存的寄存器上下文和栈。直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。
但是同一时间只能执行一个协程,大致来说是一系列互相依赖的协程间依次使用cpu,每次只有一个协程工作,而其他协程处于休眠状态,适合对任务进行分时处理;而线程,一次可以执行多个线程,适合执行多任务处理。
与线程的区别:
线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只在必要时才会被挂起。
相关阅读
前言:秋招即将结束,在找工作中遇到几次英语交流和自我介绍。如果提前做好准备,可能会收货一份含金量很高的offer,例如:微软、因特尔、W
小编导读:以下内容是根据作者看了很多面试经验之后的总结,包括百度面经,腾讯面经,新浪面经,360面经,搜狐面经,迅雷面经等,希望能给大家一
上周我们分享了抽样分析,一种很系统的需求挖掘方法,我认为无论是策略产品经理还是功能产品经理,都可以使用这套方法完成挖掘需求的工
产品经理作为互联网行业的新兴职位,正在越来越多地进入大众视野,其职能定位也许还不广为相关者所熟知;当面试如此职位的时候,很多要入
当你在花钱购买知识的同时,知识也在购买你的时间。盲目地为知识付费,未必能够真正地提升自己,合理取舍,才能免掉不必要的智商税。在一