Бесконечные рубиновые волокна? - PullRequest
2 голосов
/ 16 сентября 2011

Можно ли создать 2 волокна Руби, которые навсегда зовут друг друга? Будет ли Ruby в конечном итоге аварийно завершать работу при переполнении стека, или волокна не будут занимать пространство стека?

Ответы [ 2 ]

1 голос
/ 25 мая 2013

Возобновление волокна не увеличивает размер стека.Если вы возвращаетесь в функцию каждый раз перед тем, как возобновите работу другого волокна, то стек будет увеличиваться до переполнения, как это обычно происходит с бесконечной рекурсией.

1 голос
/ 16 сентября 2011

Если вы пишете бесконечный цикл на любом языке программирования, что-то в итоге сломается.Я не знаком с Ruby Fibers, но если они вызывают друг друга с помощью методов, то в конечном итоге стек будет переполнен.таким образом, дисковое пространство и пропускная способность сети обычно следующие два (сеть, потому что время обычно истекает).

...