Re[3]: Горутины и потоки
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.06.21 13:00
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Здравствуйте, gandjustas, Вы писали:


G>>1) Переключение контекста не бесплатное

T>А в GO бесплатное? Почему OS не может делать как в GO Runtime?
По сравнению с ОС — бесплатное.
К сожалению не знаю как работет ГО рантайм.


G>>2) Каждый поток кушает 1МБ под стек минимум

T>Почему OS не может делать динамический размер стека, как GO Runtime?
В ОС тоже динамический, начинается с 1 МБ. Это число видимо результат большого количеста исследований.

G>>В основном потому что ОС не знает чем будет заниматься поток и делает многое "по умолчанию".

T>А каких именно знаний о потоке не хватает OS?
ОС не знает когда поток остановится и остановится ли вообще. ОС прерывает выполнение по кванту времени, поэтому нужно сохвранить все текуще состояние (стек). В "упавлемых" средах "поток" выполнения останавливается не тогда когда ОС решит, а тогда когда код дойдет до точки прерывания. В этой точке рантайм знает о текущем состоянии "потока", которое обычно в разы меньше чем весь стек.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.