c语言怎样从底层实现任务调度

如题所述

对于何时调度的问题,如果在用户态线程中用如时间片轮转这样的调度方式来调度,注定任务的数量不不会太多,这样还不如用操作系统提供的多
线程。一般coroutine用于任务数量巨大,并且任务存在大量的I/O操作的场景,例如Python的gevent。这需要在实现基本的
coroutine的同时完成一套与之配合的异步I/O库,可以在当前coroutine运行到I/O操作时交出CPU给其他coroutine
如何切换的问题上,Windows可以用fiber,Posix兼容的系统可以使用set/getcontext
温馨提示:答案为网友推荐,仅供参考
相似回答