[Moscow.pm] Стиль асинхронного программирования
Eugene Toropov
eugene.toropov на gmail.com
Вт Дек 31 03:59:24 PST 2013
>
>> В текущей реализации говоришь интерпретатору, сколько потоков
>> хочешь, и он делает. Дальнейшая работа по параллелизации сопрограмм
>> происходит практически прозрачно для программиста.
>
> Так я и спрашиваю, как именно оно переносит сопрограмму с одного ядра
> на другой?
http://morsmachine.dk/go-scheduler - доступно и с картинками :)
Технически гоурутины стоят в очередях на контексты (которых не больше GOMAXPROC), выполняемые в системных тредах (1 контекст - 1 тред). Если треду надо локнуться - он отдает контекст с его очередью другому треду (взятому из кэша или вновь созданному, если кэш пуст) - про это читать в "Who you gonna (sys)call?" по ссылке выше
Евгений
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131231/c626d007/attachment.html>
Подробная информация о списке рассылки Moscow-pm