Да, это правильно.
Сопрограмму можно рассматривать как последовательность инструкций, выполняемую потоком до тех пор, пока он не встретит точку приостановки, в которой сопрограмма приостанавливает свое выполнение (сохраняя стек вызовов и локальные переменные для возобновления позже) и передает управление, и в этом случае нет. дольше запускается в потоке, в котором он работал.
Это очень похоже на то, как функция, которая возвращает, больше не работает в потоке, возвращая управление вызывающему, но сопрограмма дополнительно сохраняет свое состояние, чтобы его можно было возобновить позже, в том же или другом потоке. Как только сопрограмма передает управление, поток возвращается к коду, который запустил или возобновил сопрограмму. Этот код может быть или не быть другой сопрограммой.
Вы можете думать о потоке как о примитиве более низкого уровня (уровня ОС или уровня JVM), чем сопрограммы. Весь код в приложении выполняется в каком-то потоке, по одной последовательности инструкций в каждом потоке за раз, и сопрограммы в этом смысле не являются исключением.
person
hotkey
schedule
05.10.2020