C语言20协程如何使用,能否详细讲解?

2026-04-18 22:121阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计4438个文字,预计阅读时间需要18分钟。

C语言20协程如何使用,能否详细讲解?

什么是协程+新接触的人看了网上很多人的见解都是一头雾水,本人的理解,协程就是可中断的函数,这个函数在执行到某一时刻可以暂停,保存当前上下文(例如当前作用域的变量等),待需要时再恢复执行。

什么是协程

新接触的人看了网上很多人的见解都是一头雾水,本人的理解,协程就是可中断的函数,这个函数在执行到某一时刻可以暂停,保存当前的上下文(比如当前作用域的变量,函数参数等等),在后来某一时刻可以手动恢复这个中断的函数,把保存的上下文恢复并从中断的地方继续执行。简而言之,协程就是可中断的函数,协程如何实现:保存上下文和恢复上下文。
你可能会说协程不会这么简单的吧,我这里来举例一下啊,如python的协程

def test(): print('begin') yield print('hello world') yield print('end') t = test() next(t)

以上就是一个协程,怎么调用它呢,如果直接使用test(),它不是调用,而是返回一个句柄(python中叫生成器),通过这个句柄就可以启动这个协程,以下是调用结果


很显然,这个函数只执行了一部分,继续执行下去只要继续调用next就可以,如上的test函数只有两次“中断”,调用三次next就会执行完毕(由于是主讲c++20协程,python协程的细节不会去讲)

调度器

如果是上面的这种协程是没有什么实际用途的,协程和调度器结合起来才是真正发挥作用的时候。

阅读全文

本文共计4438个文字,预计阅读时间需要18分钟。

C语言20协程如何使用,能否详细讲解?

什么是协程+新接触的人看了网上很多人的见解都是一头雾水,本人的理解,协程就是可中断的函数,这个函数在执行到某一时刻可以暂停,保存当前上下文(例如当前作用域的变量等),待需要时再恢复执行。

什么是协程

新接触的人看了网上很多人的见解都是一头雾水,本人的理解,协程就是可中断的函数,这个函数在执行到某一时刻可以暂停,保存当前的上下文(比如当前作用域的变量,函数参数等等),在后来某一时刻可以手动恢复这个中断的函数,把保存的上下文恢复并从中断的地方继续执行。简而言之,协程就是可中断的函数,协程如何实现:保存上下文和恢复上下文。
你可能会说协程不会这么简单的吧,我这里来举例一下啊,如python的协程

def test(): print('begin') yield print('hello world') yield print('end') t = test() next(t)

以上就是一个协程,怎么调用它呢,如果直接使用test(),它不是调用,而是返回一个句柄(python中叫生成器),通过这个句柄就可以启动这个协程,以下是调用结果


很显然,这个函数只执行了一部分,继续执行下去只要继续调用next就可以,如上的test函数只有两次“中断”,调用三次next就会执行完毕(由于是主讲c++20协程,python协程的细节不会去讲)

调度器

如果是上面的这种协程是没有什么实际用途的,协程和调度器结合起来才是真正发挥作用的时候。

阅读全文