Igo*_*kov 1 ruby multithreading enumerable
我正在阅读Matz的书"Programming Ruby",在第9章,关于Threads的部分,我读了这段代码:
module Enumerable
def concurrently
map{|item| Thread.new{ yield item }}.each{|t| t.join}
end
end
Run Code Online (Sandbox Code Playgroud)
我知道该map
方法用于对数组或集合的操作,在此示例中,它显示它没有self
或一些object
.
我很困惑map
这个例子中的工作原理.
在没有显式接收器的情况下调用方法会调用该方法,self
即使"它显示没有self
",它self
也隐式存在作为默认接收器.该方法或多或少与以下相同:
def concurrently
self.map{|item| Thread.new{ yield item }}.each{|t| t.join}
#^^^^^ This is implicit.
end
Run Code Online (Sandbox Code Playgroud)