Тема: Coroutines
Показать сообщение отдельно
Старый 05.02.2022, 16:00   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Coroutines

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

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
JeanWinters (05.02.2022)