cgreenletC语言协程库
和子例程一样,协程也是一种程序组件。相对子例程而言,协程更加一般和灵活,但在实践中使用没有子例程广泛。协程源自 Simula 和 Modula-2 语言,但也有其他语言支持。协程更适合于用来实现更熟悉的程序组件如合作式多任务,迭代器,无限列表和管道。由于协程不如子例程那样被普遍所知,最好对它们作个比较。
协程比子例程更一般化。子例程的起始处是惟一的入口点;协程的起始处是第一个入口点,在协程里,返回点之后是接下来的入口点。子例程的生命期遵循后进先出(最后一个被调用的子例程最先返回);相反,协程的生命期完全由他们的使用的需要决定。
更多关于协程的介绍请看维基百科。
评论