Re[6]: Горутины и потоки
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 29.06.21 05:59
Оценка: 6 (1)
Здравствуйте, Sharov, Вы писали:

N>>В Go это точно так же как в случае ОС — переход в ожидание, или просто вызов чего-то в рантайме. Пустой вечный цикл в Go заблокирует целиком одну системную нить рантайма.

S>А чем системная нить rt в Го отличается от потока ОС?

Это одно и то же. (И, на всякий случай, нить = thread в нормальной терминологии, а поток это stream или flow, но не thread.)
Рантайм Go держит максимум указанное в GOMAXPROCS (да, название сомнительно) количество рабочих нитей (умолчание равно количеству harts == hardware threads, которое равно количеству ядер без гипертрединга и умножается на количество тредов в ядре для включённого гипертрединга; в документации Go, однако, эти сущности называются CPU). Внутренний планировщик решает, какую горутину будет исполнять конкретная нить.

N>>В Erlang не так — там рантайм считает "редукции", но за это платится тратой процессора.

S>А это что такое, в двух словах, если можно?

Выполнение одного элементарного действия (вызов функции, выполнение арифметической операции...)
The God is real, unless declared integer.
Отредактировано 29.06.2021 6:11 netch80 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.