Re[4]: Горутины и потоки
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 28.06.21 12:49
Оценка: 7 (2)
Здравствуйте, Serginio1, Вы писали:

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

T>>А в GO бесплатное? Почему OS не может делать как в GO Runtime?
S>https://ru.bmstu.wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0

Это ссылка ни о чём. Всё то кэпство, что там написано, или идентично для всех переключений включая чисто userland, или может быть устранено (как минимум в Unix) при переключении между нитями одного процесса. Что может пойти не так при переключении на другую нить — составляет малую часть этого набора (если это не случай "имперсонации" в другой процесс в Windows).

S> Длительность, размер стека. Кроме того есть TLS https://docs.microsoft.com/ru-RU/cpp/parallel/thread-local-storage-tls?view=msvc-160&viewFallbackFrom=vs-2017


TLS аж ничем не мешает. При переключении на другую нить меняется, в современных реализациях, регистр FS или GS. По адресу в этом регистре находится персональная область конкретной нити.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.