/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/ruby/ruby-511-17-006/main.rb
19 строк
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
Разбор: - Фрагмент показывает конкретный сценарий, который стартует со строки `Разбор:` и задаёт контекст выполнения. - Ключевые элементы блока: `Fiber`, `Async`, они определяют основную логику примера. - По шагам код выполняется так: `Разбор:` -> `- Фрагмент показывает конкретный сценарий, который стартует со строк` -> `- Ключевые элементы блока: `Async`, они определяют основную логику п` -> `- По шагам код выполняется так: `require 'async'` -> `require 'async`. - Для корректности важно поведение конкурентности: где блокировка, где ожидание, и как исключаются гонки между задачами. - Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность. f = Fiber.new do puts "1: начало" x = Fiber.yield 100 # приостанавливает fiber, возвращает 100 вызвавшему puts "3: возобновление с аргументом #{x}" "результат" end puts "0: до resume" v1 = f.resume # → "1: начало", затем возвращает 100 puts "2: после первого resume: #{v1}" v2 = f.resume("арг") # → "3: возобновление...", затем возвращает "результат" puts "4: итог: #{v2}"