Multiple Workers One Sink
suggest changeWe want to gather data created by multiple Workers.
First we create a Queue:
sink = Queue.new
Then 16 workers all generating a random number and pushing it into sink:
(1..16).to_a.map do
Thread.new do
sink << rand(1..100)
end
end.map(&:join)
And to get the data, convert a Queue to an Array:
data = [].tap { |a| a << sink.pop until sink.empty? }
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents