Сообщение от JeanWinters
Почему в определении сопрограмм утверждается, что "корутины работают параллельно, асинхронно в одном потоке"? Как они могут работать "параллельно", если это слово противоположно по смыслу слову "асинхронно"? Как я понял, корутины - это подпрограммы с множественным входом и выходом, которые временно могут быть приостановлены потоком выполнения. В движке Unity они что-то вроде таймеров и отложенных событий, которые обрабатываются в update. То есть они работают последовательно, но никак не параллельно. Или может неправильно делаю выводы об этом?
|
При выполнении yield return корутина передаёт управление другому потоку.
То есть каждая корутина должна время от времени "уступать" управление другим, чтобы и те тоже успели поработать и возникла иллюзия параллельности.
Ну то есть технически они, конечно, не параллельны, но создаётся такая иллюзия для удобства.