我读到 ucontext 用于保存 linux 中多个线程之间的上下文。既然操作系统是在不同线程之间进行上下文切换,那么linux为什么要提供这个头文件(ucontext.h)来进行上下文切换呢?
问问题
10868 次
1 回答
12
ucontext.h
定义允许程序员保存和恢复程序上下文的函数( setcontext
、getcontext
、makecontext
和swapcontext
)和结构(ucontext_t
和)。mcontext_t
使用这些函数,程序员可以实现高级流控制方案,例如协程或轻量级用户线程。
GNU C Library: Complete Context Control中提供了大量的细节(包括实现协程的示例)。
应该注意ucontext.h
的是在 POSIX.1-2008 中已过时(“IEEE Std 1003.1-2001/Cor 2-2004,应用了 XBD/TC2/D6/28 项,更新了 getcontext()、makecontext()、setcontext()、和 swapcontext() 函数已过时。”在ucontext.h
页面上)。)
于 2013-07-21T06:03:52.353 回答