Subroutine - блок инструкций, решающие определенную задачу, запакованы в некую пакетную единицу. Примеры: процедуры, функции, методы, рутины. Субрутины могут располагать только одним програмным стеком при старте приложения.
Coroutine - сабрутина для кооперативной многопоточности, которая передает управляемость другому потоку для выполнения своих инструкций, при этом поточный поток подвисает. Тут мы уже не можем обойтись одним стеком приходится использовать continuations , которые могут выделять в памяти дополнительные стеки, и обычно реализованы в высокоуровневых языках программирования со сборщиком муссора.
Generator - также как и корутина передает управление другому потоку, только вот с того потока программа обречена вернуться обратно, откуда его вызвали через генератор, механизм корутины позволяет перенаправить программу в любом направлении.
Coroutine - сабрутина для кооперативной многопоточности, которая передает управляемость другому потоку для выполнения своих инструкций, при этом поточный поток подвисает. Тут мы уже не можем обойтись одним стеком приходится использовать continuations , которые могут выделять в памяти дополнительные стеки, и обычно реализованы в высокоуровневых языках программирования со сборщиком муссора.
Generator - также как и корутина передает управление другому потоку, только вот с того потока программа обречена вернуться обратно, откуда его вызвали через генератор, механизм корутины позволяет перенаправить программу в любом направлении.
Комментариев нет:
Отправить комментарий