Описание тега coroutine

Сопрограммы - это общая структура управления, посредством которой управление потоком совместно передается между двумя разными подпрограммами без возврата.

Сопрограмма - это пара кодовых последовательностей, которые могут обмениваться управлением.

Аппаратно это достигается путем перестановки вершины стека и счетчика программ. Совместные подпрограммы широко использовались внутри операционных систем.

Сопрограммы хорошо подходят для создания итераторов и конвейеров. Подпрограммы могут возвращаться только один раз; напротив, сопрограммы могут возвращать (давать) несколько раз. Yielding возвращает результат вызывающей сопрограмме и возвращает ей управление, как и в обычной подпрограмме. Однако при следующем вызове сопрограммы выполнение начнется сразу после вызова yield.

Связанные теги

многопоточность волокна зеленые потоки легкие процессы lwt