タグ

2017年5月15日のブックマーク (1件)

  • Fiberのための同期機構の作り方 - @m_seki の

    Rubyのスレッドは素晴らしいと思うのですが、なぜか人気がありません。 Fiberで書けば人気が出ると思うので、ときどき調べています。多くのサンプルは次のようなジェネレーターっぽいものです。 fib = Fiber.new do a, b = 1, 1 while true Fiber.yield(a) a, b = b, a + b end end 10.times do |n| p [n, fib.resume] end Enumeratorなどの実装もこんな感じでできてるんでしょうね。 二つの実行主体(fibのFiberと10.times..してるメイン部分)はメイン部分がFiberを利用しているような構図です(??)。 resumeするべき相手のことを知ってるし、むしろFiberが資源みたいな感じ(???)。 マルチスレッドでのプログラミングのように、複数のFiber間で連携する雰

    uzuki05
    uzuki05 2017/05/15