Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JRuby多核处理用法_Ruby_Multithreading_Asynchronous_Multiprocessing_Jruby - Fatal编程技术网

JRuby多核处理用法

JRuby多核处理用法,ruby,multithreading,asynchronous,multiprocessing,jruby,Ruby,Multithreading,Asynchronous,Multiprocessing,Jruby,是否可以在多个内核上运行代码块?以循环等为例?如果可能的话,没有太多的开销,为什么不一直使用它呢?我可以通过某种方式在多个核之间传递变量吗 是的,可以在多个核心上执行代码/块,但它并不是那么简单,例如,支持结构必须为此做好准备(没有一个核心结构,例如数组,哈希,是线程安全的) 您不能简单地(1..100)。每个{i | put i}运行多线程时,没有与单线程情况不同(不可预测)的结果 在case或变量中,如果要在线程之间共享,则需要同步访问或使用线程安全结构 也许在您的情况下,我不会从一个绿色领

是否可以在多个内核上运行代码块?以循环等为例?如果可能的话,没有太多的开销,为什么不一直使用它呢?我可以通过某种方式在多个核之间传递变量吗

是的,可以在多个核心上执行代码/块,但它并不是那么简单,例如,支持结构必须为此做好准备(没有一个核心结构,例如
数组
哈希
,是线程安全的)

您不能简单地
(1..100)。每个{i | put i}
运行多线程时,没有与单线程情况不同(不可预测)的结果

在case或变量中,如果要在线程之间共享,则需要同步访问或使用线程安全结构

也许在您的情况下,我不会从一个绿色领域开始,这些概念和一些并发编程的后台实践都可以使用gem

要并行运行块,请了解

如果您对“安全”感兴趣,还可以在线程之间共享变量(CR尝试引入一个内存模型,因为Ruby缺少一个正式的内存模型-JRuby有一些保证,例如类变量是可变的-跨线程可见的更改)