Здравствуйте, ·, Вы писали:
·>Виртуальные треды перешедулятся на реальные треды в момент всяких многопоточных действий, типа locks, yield, sleep и т.п. Если виртуальный тред будет внутри себя крутить вычислительный цикл, то он займёт реальный тред. Т.е. кооперативная многозадачность или асинк с человеческим лицом.
·>Когда в при исполнении кода виртуального треда происходил блокировка/етс — стек сохраняется в куче, и добавляется таск в шедулер на продолжение. Шедулер берёт очередной таск, восстанавливает стек и монтирует его на реальный тред. И так по кругу. ·>Сами стеки — это маленькие кусочки порядка сотни байт.
Можно короче объяснить : если взять Win 16 и добавить работу на нескольких ядрах, то оно и получится. Только там в качестве потоков были задачи.