У меня есть вопрос о волокне в окнах

Я хочу знать о волокне, которое предоставляет окно.

Давайте предположим, что я создал 4 волокна.

————нить——————

fiber1 — fiber2 — fiber3 — fiber4

^

Волокно 1 теперь выполняется потоком.

  1. Один поток может работать только с одним волокном одновременно. Это верно?

  2. Если нить оканчивает fiber1, то другие все волокна тоже терминируются?

  3. Я знаю, что волокно не является преимущественным. Тогда, если я хочу переключить fiber1 на fiber2, нет никакого способа, кроме как вызвать SwitchToFiber в fiber1?

  4. Если я вызову SwitchToFiber в fiber1 во время выполнения какой-либо задачи, то fiber1 немедленно перестанет работать? или спать после завершения своей задачи?

  5. Нет общего пространства в fiber1 to fiber4?

  6. И нет общего пространства, тогда нет необходимости блокировать оптоволокно. это верно?

Я читаю документы MSDN, но не могу что-то понять. Поэтому я спрашиваю здесь.

-1

Решение

SwitchToFiber как longjmp, а также CreateFiber это как расширенная версия setjmp это выделяет дополнительное пространство стека. DeleteFiber это как free контекстного блока, выделенного setjmp, И самое главное, дарители ничего не делают сами по себе, и longjmp это как расширенная версия Си gotoнапример, похож на расширение «computed goto» в gcc, за исключением того, что он может переключать стек при прыжке. Вы можете легко эмулировать волокна (не переносимые) с setjmp, longjmp и немного alloca,

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]