如何使用getcontext()和setcontext()进行多线程处理?

时间:2019-02-04 16:24:29

标签: c multithreading function

如果我理解:多线程允许有多个执行线程。因此,在一个线程执行某项操作期间,另一个线程在执行其他操作而无需等待另一个线程。但是,当我使用getcontext和setcontext时,我有一个线程等待另一个线程继续执行的印象。请给我一个如何使用getcontext和setcontext进行多线程处理的示例吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

setcontext()getcontext()makecontext()swapcontext() 提供了以下功能:设置多个轻量级执行线程。它们通常被称为协程。在 GLIBC/Linux 环境中,它们被设置在一个进程内。它们不受操作系统调度程序控制。实现它们的程序员有责任从一种切换到另一种。当我们在流程上下文中运行时,我们不是完全并行而是模拟并行:这是伪并行

一个实现显示在 makecontext()manual 的“示例”部分。