以下代碼有效,但如果讀寫器在父進程和子進程之間共享資源,爲什麼它們首先關閉?如果IO.pipe的行爲與資源類似,爲什麼需要關閉子進程中的管道?
reader, writer = IO.pipe
fork do
reader.close
writer.puts "foobar"
end
writer.close
puts reader.read
這是沒有意義的我,因爲我覺得像下面的代碼寫操作後我做了
reader, writer = IO.pipe
fork do
writer.puts "foobar"
writer.close
end
Process.wait
puts reader.read
reader.close
讀者和作家應該關閉,我不知道爲什麼它不」工作。任何人都可以給我一個想法嗎?
將'read'更改爲'readpartial(10)'(換言之,非阻塞式讀取)並查看會發生什麼。 – Catnapper 2013-05-05 13:19:42