Ruby の Ractor で sleep sort をやってみた

簡単にやってみた。

$stdout.sync = true

puts "かいし!!!"
data = (1..10).to_a.shuffle
pp data

ractors = data.map { |i|
  Ractor.new(i) { |it|
    # バッファリングを無効化
    $stdout.sync = true

    sleep it / 5.0
    puts it
  }
}

# 待ち処理
ractors.map(&:take)

puts "おわり!!"

https://wandbox.org/permlink/8uwLgJDQ1eP4dDKa

コード自体はそんなに難しいことはやっていませんね。