12. EM - 京东云擎架构www.jd.comPage_011多线程是高并发,不是高并行
GIL(Global Interpreter Lock)
13. EM - 京东云擎架构www.jd.comPage_012集成组件
Thin:ruby web服务器
Swiftiply:网络集群化代理服务器
Evented Mongrel:网络流量由EventMachine处理的Mongrel
Saprrow:基于memcache的轻量级队列
Juggernaut:Ruby on Rails插件,服务器可以初始一个连接并将数据推送给客户端
14. EM(next_tick) - 京东云擎架构www.jd.comPage_013 next_tick:延迟block的执行
正常循环代码:
require 'rubygems'
EM.run do
n = 0
while n < 1000
print “Hello JingDong”
n += 1
end
end
15. EM(next_tick) - 京东云擎架构www.jd.comPage_014使用next_tick来处理:
require 'rubygems'
require 'eventmachine'
EM.run do
n = 0
do_work = proc{
if n < 1000
print “Hello JingDong”
n += 1
EM.next_tick(do_work)
else
EM.stop
end
}
EM.next_tick(do_work)
end
17. EM(defer) - 京东云擎架构www.jd.comPage_016 defer:将任务放到后台执行,并且可以指定callback参数,当后台任务返回时候,在主线程中调用callback函数
require 'rubygems'
require 'eventmachine'
EM.run do
op = proc do
puts "Do you go to JD shopping ?"
end
callback = proc do |question|
puts "#{question}", "yes"
end
EM.defer(op, callback)
end