如果我理解:多线程允许有多个执行线程。所以在一个线程做某事期间,另一个线程做其他事情而不等待另一个线程。但是当我使用getcontext()和setcontext()时,我的印象是线程等待另一个线程继续执行。你能给我一个如何使用getcontext()和setcontext()来做多线程的例子吗?
问问题
299 次
1 回答
0
setcontext()、getcontext()、makecontext()和swapcontext()提供了设置多个轻量级执行线程的能力。它们通常被称为协程。在 GLIBC/Linux 环境中,它们被设置在一个进程中。它们不受操作系统调度程序的控制。实现它们的程序员有责任从一个切换到另一个。当我们在进程的上下文中运行时,我们不是完全并行,而是模拟并行:这是伪并行。
makecontext()手册的“示例”部分显示了一个实现。
于 2021-01-18T19:09:34.110 回答