企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
```cpp #include <stdio.h> #include <ucontext.h> #include <unistd.h> #include <stdlib.h> #define CO_STACK_SIZE 1024 * 1024 void sub_coroutine() { puts("sub coroutine"); } int main() { ucontext_t ctx; ucontext_t main_ctx; void *co_stack = malloc(CO_STACK_SIZE); getcontext(&ctx); ctx.uc_stack.ss_sp = co_stack; ctx.uc_stack.ss_size = CO_STACK_SIZE; ctx.uc_link = &main_ctx; for (int i = 0; i < 2; i++) { // 创建子协程上下文 makecontext(&ctx, &sub_coroutine, 0); // 切换到子协程 swapcontext(&main_ctx, &ctx); } puts("main end"); free(co_stack); return 0; } ``` ``` evenleo@ubuntu:~/workspace/test$ g++ main.cpp evenleo@ubuntu:~/workspace/test$ ./a.out sub coroutine sub coroutine main end ```