Волокна / сопрограммы против продолжений с разделителями

Итак, я прочитал статью о краже деков одновременной работы здесь: http://open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3872.pdf. Они упоминают «Похищение детей против похищения продолжений» и говорят, что для кражи потомков может потребоваться неограниченное пространство стека для хранения задач, которые еще предстоит выполнить, в отличие от кражи продолжения, которая является постоянным фактором для процессоров P = #.

У меня есть теоретические вопросы о разнице между волокнами / сопрограммами и ограниченными продолжениями. Во-первых, я согласен с тем, что сопрограммы и волокна в значительной степени эквивалентны, но эквивалентны ли волокна также продолжениям? У меня есть скрытое подозрение, что то, что я собираюсь реализовать, в корне неверно (т. Е. Замена потоков волокнами, а не реализация версии, которая не требует неограниченной памяти).


person Jesse Lactin    schedule 26.06.2018    source источник


Ответы (1)


На концептуальном уровне «стековые сопрограммы» эквивалентны «однократному продолжению с разделителями» или «однократному продолжению» с точки зрения их выразительности, а волокна означают стековые сопрограммы с (часто подключаемым) планировщиком, см..

person John Z. Li    schedule 24.12.2019