Ruby - 如何在不同线程上的每个数组元素上运行一个方法?

标签 ruby arrays multithreading

所以我有一个包含 40000 个元素的数组,我希望对每个元素运行一个方法。

为了减少花费的时间,我正在考虑在多个线程上运行它。也许将数组拆分为多个数组并在不同的线程或其他东西上运行。但我不知道如何开始。

假设数组是foo[],调用的方法是bar()。 bar() 返回一个字符串。代码执行后,我希望能够将所有字符串合并/添加到一个大字符串中。

有没有办法做到这一点?我试图让我的问题尽可能简单,但如果您想了解更多信息,请告诉我。

提前致谢!

最佳答案

听起来您想要类似 pmap 函数的东西。有一个名为 peach 的 ruby 库它在 native 数组上提供了 pmap 和 peach(每个都“并行”)方法。

有了这个库,你可以做类似的事情

require 'peach'
[1,2,3,4].pmap{|x| f(x)} #Spawns 4 threads, => [f(1),f(2),f(3),f(4)]

关于Ruby - 如何在不同线程上的每个数组元素上运行一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023683/

相关文章:

Ruby 方法自省(introspection)

ruby - 对于 Ruby 应用程序的嵌入式 HTTP/HTTPS 服务器,我有什么选择?

c++ - 从多个结构访问字段与访问数组/vector 的元素相比是否更慢?

php - php 中的数组和 python 中的 dict 是一样的吗?

ruby-on-rails - 在文件中的特定行插入行

ruby - 如何将 Rubymine IDE 调试器附加到 shell 进程?

java - 设置 TextView 文本时应用程序卡住

python - Django 和 Gunicorn 的异步任务

Java - 在声明行中对静态数组进行排序(而不是在静态构造函数中)

java - 为什么 Java 错误会被 ExecutorService 实例生成的线程吞噬?