Ucontext в Linux

Я читал, что ucontext используется для сохранения контекста между несколькими потоками в Linux. Поскольку ОС выполняет переключение контекста между различными потоками, почему linux предоставляет этот заголовочный файл (ucontext.h) для переключения контекста?

1 ответ

ucontext.h определяет функции (setcontext, getcontext, makecontext, а также swapcontext) и конструкции (ucontext_t а также mcontext_t), которые позволяют программисту сохранять и восстанавливать контекст программы.

Используя эти функции, программист может реализовать усовершенствованные схемы управления потоками, такие как сопрограммы или легкие пользовательские потоки.

Достаточное количество деталей (включая пример реализации сопрограмм) дано в Библиотеке GNU C: Полный контекстный контроль.

Следует отметить ucontext.h был устаревшим в POSIX.1-2008 ("IEEE Std 1003.1-2001/Cor 2-2004, применяется элемент XBD/TC2/D6/28, обновляя getcontext(), makecontext(), setcontext() и swapcontext() функции, чтобы быть устаревшим."на ucontext.h страница).)

Другие вопросы по тегам