如果我理解:多线程允许有多个执行线程。因此,在一个线程执行某项操作期间,另一个线程在执行其他操作而无需等待另一个线程。但是,当我使用getcontext和setcontext时,我有一个线程等待另一个线程继续执行的印象。请给我一个如何使用getcontext和setcontext进行多线程处理的示例吗? 谢谢!
答案 0 :(得分:0)
setcontext()、getcontext()、makecontext() 和 swapcontext() 提供了以下功能:设置多个轻量级执行线程。它们通常被称为协程。在 GLIBC/Linux 环境中,它们被设置在一个进程内。它们不受操作系统调度程序控制。实现它们的程序员有责任从一种切换到另一种。当我们在流程上下文中运行时,我们不是完全并行而是模拟并行:这是伪并行。
一个实现显示在 makecontext() 的 manual 的“示例”部分。