来自维基百科Reactor Pattern文章:
反应器设计模式是用于处理通过一个或多个输入同时传递给服务处理器的服务请求的事件处理模式.
它命名了几个例子,例如nodejs,twisted,eventmachine
但据我所知,上面是流行的事件驱动框架,所以让它们也成为反应堆模式框架?
如何区分这两个?或者他们是一样的?
尝试在我的工作示例中实现Celluloid 异步似乎表现出奇怪的行为.
这里我的代码看起来
class Indefinite
include Celluloid
def run!
loop do
[1].each do |i|
async.on_background
end
end
end
def on_background
puts "Running in background"
end
end
Indefinite.new.run!
Run Code Online (Sandbox Code Playgroud)
但是当我运行上面的代码时,我从未看到过" 在后台运行 "
但是,如果我睡觉,代码似乎工作.
class Indefinite
include Celluloid
def run!
loop do
[1].each do |i|
async.on_background
end
sleep 0.5
end
end
def on_background
puts "Running in background"
end
end
Indefinite.new.run!
Run Code Online (Sandbox Code Playgroud)
任何的想法?为什么在上述两个场景中存在这样的差异.
谢谢.