Fiber协程的构造、状态及操作详解与函数介绍

该思维导图概述了Fiber协程的基本构造函数、状态及操作。构造函数包括私有的Fiber()用于创建主协程,以及接受回调函数和栈大小的构造函数。协程的状态包括就绪(READY)、运行(RUNNING)和结束(TERM)。协程操作包括挂起(yield)、恢复(resume)和重用(reset)。重用操作允许重复利用已结束的协程,建立新协程。最后,定义了静态的协程主函数(MainFunc)。

源码
# Fiber协程
- 构造函数
  - Fiber()
    - 定义在private中
    - 由GetThis()调用
    - 私有
    - 创建主协程
    - 不申请协程栈空间
  - Fiber(std::function cb, size_t stacksize = 0, bool run_in_scheduler = true)
    - cb:回调函数
    - stacksize:栈大小,默认为0
    - run_in_scheduler:是否在调度器中运行,默认为true
- 协程状态
  - READY:就绪
    - 可被调度执行
  - RUNNING:运行
    - 当前正在执行的协程
  - TERM:结束
    - 不可再恢复执行
- 协程操作
  - 挂起
    - void yield()
      - 当前协程变为 READY
      - 上次resume时的协程变为 RUNNING
  - 恢复
    - void resume()
      - 当前协程变为 RUNNING
      - 正在运行的协程变为 READY
  - 重用协程
    - void reset(std::function cb)
      - 重复利用已结束的协程
      - 复用其栈空间,创建新协程
      - 原状态为 TERM,新协程状态为 READY
- 协程函数
  - static void MainFunc()
    - 协程的入口函数
    - 初始化协程环境
图片
Fiber协程的构造、状态及操作详解与函数介绍