1 Star 0 Fork 5

northqd/ziya-coroutine

forked from 启明南/ziya-coroutine 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.c 748 Bytes
一键复制 编辑 原始数据 按行查看 历史
#include "include/common.h"
#include "include/core/coroutine.h"
#include "include/core/sched.h"
#include "include/core/cpu.h"
extern void env_init();
void* coroutine_fun(void* arg) {
coroutine_t* self;
__asm__("":"=d"(self));
for (int i = 0; i < 100000; ++i) {
printf("协程 ·%s· 获得调度\n", self->name);
sleep(1);
}
}
int main() {
cpu_init();
env_init();
// 开始调度
sleep(1); // 等待1s,让模拟时钟中断的线程启动完毕
start_cpu();
// 再创建两个协程用于调度
coroutine_create(NULL, coroutine_fun, "c1", 2);
coroutine_create(NULL, coroutine_fun, "c2", 1);
coroutine_create(NULL, coroutine_fun, "c3", 1);
getchar();
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/northqd2018/ziya-coroutine.git
git@gitee.com:northqd2018/ziya-coroutine.git
northqd2018
ziya-coroutine
ziya-coroutine
master

搜索帮助