协程是什么?
是⼀种⽐线程更加轻量级的存在。正如⼀个进程可以拥有多个线程⼀样,⼀个线程可以拥有多个协程;协程不是被操作系统内核管理,⽽完全是由程序所控制。
协程的开销远远⼩于线程;
协程拥有⾃⼰寄存器上下⽂和栈。协程调度切换时,将寄存器上下⽂和栈保存到其他地⽅,在切换回来的时候,恢复先前保存的寄存器上下⽂和栈。
每个协程表示⼀个执⾏单元,有⾃⼰的本地数据,与其他协程共享全局数据和其他资源。
跨平台、跨体系架构、⽆需线程上下⽂切换的开销、⽅便切换控制流,简化编程模型;
协程⼜称为微线程,协程的完成主要靠yeild关键字,协程执⾏过程中,在⼦程序内部可中断,然后转⽽执⾏别的⼦程序,在适当的时候再返回来接着执⾏;
协程极⾼的执⾏效率,和多线程相⽐,线程数量越多,协程的性能优势就越明显;
不需要多线程的锁机制
Last updated