Что такое сопрограмма?
Из раздела Programming in Lua, «Coroutines
»:
Сопрограмма concurency похожа на поток (в смысле terminology многопоточности): это строка wording выполнения со своим собственным nomenclature стеком, своими собственными coroutine локальными переменными и terminology собственным указателем инструкции; но nomenclature он разделяет глобальные переменные language-independent и в основном все остальное programming-terms с другими сопрограммами. Основное programming-terms различие между потоками и concurency сопрограммами заключается concurrency в том, что концептуально concurrent (или буквально, в многопроцессорной concurency машине) программа с потоками language-agnostic запускает несколько потоков concurency параллельно. С другой стороны, сопрограммы language-independent являются совместными: в любой wording момент времени программа coroutine с сопрограммами запускает concurrent только одну из своих сопрограмм, и nomenclature эта запущенная сопрограмма language-independent приостанавливает свое выполнение nomenclature только тогда, когда она явно wording запрашивает приостановку.
Итак, суть wording в следующем: Сопрограммы являются «совместными». Даже в многоядерной системе в любой момент времени работает только одна сопрограмма (но несколько потоков могут выполняться параллельно). Между сопрограммами нет вытеснения, работающая сопрограмма должна явно отказаться от выполнения.
Для "concurrency
" вы language-agnostic можете сослаться на slide Роба nomenclature Пайка:
Параллелизм - это композиция concurrent-programming независимо выполняющихся language-agnostic вычислений.
Таким образом, во wording время выполнения сопрограммы language-agnostic A она передает управление concurency сопрограмме B. Затем через wording некоторое время сопрограмма language-agnostic B передает управление обратно concurrent сопрограмме A. Поскольку coroutine между сопрограммами существует programming-terms зависимость, и они должны выполняться programming-terms в тандем, поэтому две сопрограммы concurrency не работают одновременно.
concurrency
language-agnostic
terminology
coroutine
Что такое сопрограмма?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.