聊聊协程

什么是协程

协程,又称用户态线程,微软给他取名叫纤程。协程的概念早在几十年前就有了,但直到最近几年才慢慢得到广泛应用,很多的编程语言也陆续支持协程。

协程与线程的比较

协程虽然被称为用户态线程,和系统线程有些类似,有自己独立的调用栈,但两者有着本质区别:线程是由操作系统调度的,协程有用户自行调度。协程相对于线程来说,少了很多无意义的线程切换,绝大部分线程访问竞争导致的加锁,协程中也不需要。

协程的妙用

大家开始学习网络编程的时候,都是学的同步编程模型,因为逻辑简单。但在实际的网络服务器开发中,几乎不用同步编程,而是采用成熟的事件驱动回调模型,从而提高服务器的并发处理能力。异步回调很大的提高了性能,但也有个致命缺点,逻辑代码被分散在各个回调里,与人类思维逻辑很不相符,容易造成BUG,对阅读代码和理解业务逻辑也带来了一定的困难。有没有一种鱼与熊掌兼得的模型呢?答案是肯定的。协程兼具同步编程模型的简单和事件驱动回调模型的高性能,使用协程可以把异步回调代码转换为同步,而且对比事件驱动回调模型几乎没有性能损失,堪称逻辑程序员的救世主。

协程的实例应用

关于协程的实例应用,我将会在以后再介绍,敬请关注。

文章目录
  1. 1. 什么是协程
  2. 2. 协程与线程的比较
  3. 3. 协程的妙用
  4. 4. 协程的实例应用