概要
RubyでFutureパターンを実装する(シンプル編)
サンプルコード
# encoding: utf-8 require 'pp' require 'thread' class Ret def initialize(id, value) @id, @value = id, value end end puts Time.now results = [] values = %w[hoge hige hage] 3.times do |cnt| results << Thread.fork(cnt, values[cnt]) do |i, value| sleep i + 1 Ret.new(i, value) end end puts Time.now sleep 2 puts "wait start." results.each {|r| pp r.value } puts Time.now
出力
2013-06-23 01:41:00 +0900 2013-06-23 01:41:00 +0900 wait start. #<Ret:0x296e848 @id=0, @value="hoge"> #<Ret:0x296da50 @id=1, @value="hige"> #<Ret:0x296cce8 @id=2, @value="hage"> 2013-06-23 01:41:03 +0900