[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