s per process Thousands of Producers and Consumers n = 2000 # 2000 producers = Array.new(n) do Concurrent Promises.future_on(:fast, 0, channel2, &produce).run end receivers = Array.new(n) do Concurrent Promises.future_on(:fast, 0, channel2, &receive).run end Concurrent.global_fast_executor.length # 8 receivers.each(&:wait) # all finish successfully receivers[0 10].map(&:value!) # [263, 264, 251, 264, 265, 270, 264, 264, 265, 265, 263] receivers.map(&:value!).reduce(&:+) # 110000 n * 55 # 110000 38 / 50