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

最佳答案

ucontext.h 定义了允许程序员保存和恢复程序上下文的函数( setcontext getcontext makecontext swapcontext )和结构( ucontext_tmcontext_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 page 上)。)

关于c - linux中的ucontext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17768925/

10-11 15:28