LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Вот прямо на порядки? То есть если зеленый поток нормально так укладывается в 10кб, то родной такой же будет отжирать сразу 100кб или даже мегабайт? С чего бы это? Или ты говоришь только про размер контекста, который и там и там - проценты (или доли процента) от размера задачи? И даже при этом, чего такого хранит ОС, что у нее контекст потока оказывается прямо таки на порядки больше, чем у зеленых потоков?

Когда последний раз я проверял, стек по умолчанию отжирал 2 мегабайта. Можно его ограничить, но что будет, если вдруг потоку понадобится что-нибудь рекурсивно повызывать? Возможности динамически расширить стек, когда он кончился, я не видел в C. В зелёных потоках это реализуемо.

и почему?

Например потому, что в типичной ОС работают тысячи потоков максимум. Как себя поведут алгоритмы планировщика на миллионах потоков я не знаю. Есть предположение, что не очень хорошо.

Исходная версия Legioner, :

Вот прямо на порядки? То есть если зеленый поток нормально так укладывается в 10кб, то родной такой же будет отжирать сразу 100кб или даже мегабайт? С чего бы это? Или ты говоришь только про размер контекста, который и там и там - проценты (или доли процента) от размера задачи? И даже при этом, чего такого хранит ОС, что у нее контекст потока оказывается прямо таки на порядки больше, чем у зеленых потоков?

Когда последний раз я проверял, стек по умолчанию отжирал 8 мегабайтов. Можно его ограничить, но что будет, если вдруг потоку понадобится что-нибудь рекурсивно повызывать? Возможности динамически расширить стек, когда он кончился, я не видел в C. В зелёных потоках это реализуемо.

и почему?

Например потому, что в типичной ОС работают тысячи потоков максимум. Как себя поведут алгоритмы планировщика на миллионах потоков я не знаю. Есть предположение, что не очень хорошо.