Coroutines
Почему в определении сопрограмм утверждается, что "корутины работают параллельно, асинхронно в одном потоке"? Как они могут работать "параллельно", если это слово противоположно по смыслу слову "асинхронно"? Как я понял, корутины - это подпрограммы с множественным входом и выходом, которые временно могут быть приостановлены потоком выполнения. В движке Unity они что-то вроде таймеров и отложенных событий, которые обрабатываются в update. То есть они работают последовательно, но никак не параллельно. Или может неправильно делаю выводы об этом?
|
Ответ: Coroutines
Потоками рулит ОС и может раскидать их по ядрам процессора так, чтоб они выполнялись "одновременно",
а коротинами библиотека языка и помещает их в некий цикл событий "eventloop", который выполняется дозировано и последовательно. То есть, да, коротины не параллельны. |
Ответ: Coroutines
Цитата:
То есть каждая корутина должна время от времени "уступать" управление другим, чтобы и те тоже успели поработать и возникла иллюзия параллельности. Ну то есть технически они, конечно, не параллельны, но создаётся такая иллюзия для удобства. |
Часовой пояс GMT +4, время: 13:21. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot