小编pca*_*ca2的帖子

收集Ruby Parallel Gem的结果

Ruby的Parallel gem似乎非常强大,但是我在使用它来构建集合时遇到了麻烦.

将进程设置为0,采用以下示例:

[174] pry(main)> @array = []
=> []
[175] pry(main)> Parallel.each(1..10, :in_processes=>0) {|x| @array.push(Random.rand(10))}
=> 1..10
[176] pry(main)> @array
=> [7, 3, 5, 6, 1, 5, 4, 4, 5, 1]
Run Code Online (Sandbox Code Playgroud)

但是当我们将流程设置为2时:

[177] pry(main)> @array = []
=> []
[178] pry(main)> Parallel.each(1..10, :in_processes=>2) {|x| @array.push(Random.rand(10))}
=> 1..10
[179] pry(main)> @array
=> []
Run Code Online (Sandbox Code Playgroud)

显然,这甚至不接近构建随机值数组的最佳方法,我想要的是,当有多个进程时循环结束后,附加到@array的值不存在.这是一个范围问题还是我误解了叉子是如何工作的?

ruby parallel-processing fork

3
推荐指数
1
解决办法
2328
查看次数

标签 统计

fork ×1

parallel-processing ×1

ruby ×1