我读到 ucontext 用于保存 linux 中多个线程之间的上下文。既然OS做不同线程间的上下文切换,那为什么linux要提供这个头文件(ucontext.h)来进行上下文切换呢?
最佳答案
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
page 上)。)
关于c - linux中的ucontext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17768925/