我正在使用makecontext((,getcontext((和swapcontext((在C中实现一个线程库。我需要实现一个每 5 毫秒调用一次的调度程序,以便与另一个线程(轮询(切换上下文。如何实现此计时器功能?如果我将计时器放在调度程序中,那么在调度程序未运行时,时间将无法增加。有没有办法将计时器与无论什么上下文处于活动状态都会更新的特定进程相关联?
基于setitimer((系统调用的解决方案可以完成这项工作。这可以编程以触发循环SIGALRM信号。然后可以附加一个信号处理程序来触发调度程序。