1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# Mesure small and plenty pipe read/write. # A performance may depend on GVL implementation. lmax = 100_000 r, w = IO.pipe [Thread.new{ lmax.times{ w.write('a') } p "w:exit" }, Thread.new{ lmax.times{ r.read(1) } p "r:exit" }].each{|t| t.join}