8

我读到 ucontext 用于保存 linux 中多个线程之间的上下文。既然操作系统是在不同线程之间进行上下文切换,那么linux为什么要提供这个头文件(ucontext.h)来进行上下文切换呢?

4

1 回答 1

12

ucontext.h定义允许程序员保存和恢复程序上下文的函数( setcontextgetcontextmakecontextswapcontext)和结构(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 回答