это изображение взято из Практическое использование setjmp и longjmp в C .
Насколько я понимаю, coroutine
представляет собой два процесса выглядитделаю параллельно для человек , но на самом деле выполняю один процесс для машина .
Но с использованием setjmp
& longjmp
мне очень трудно читать код.Если нужно написать тот же.Например, процесс A & B, я дам сервал States
процессам, чтобы разделить их на разные части (состояния), последовательно сделайте так:
Process A
switch (state)
case A1:
if (A1 is done)
do B1
break;
...
Process B
switch (state)
case B1:
if (B1 is done)
do A2
break;
...
Мне нужна причина, чтобы поддержать меня использовать setjmp
& longjmp
& coroutine
в C / C ++.В чем преимущество?