Ruby 多线程的潜力和弱点分析
Web应用大多是IO密集型的,利用Ruby多进程+多线程模型将能大幅提升系统吞吐量。其原因在于:当Ruby某个线程处于IOBlock状态时,其它的线程还可以继续执行。但由于存在RubyGIL(GlobalInterpreterLock),MRIRuby并不能真正利用多线程进行并行计算。JRuby去除了GIL,是真正意义的多线程,既能应付IOBlock,也能充分利用多核CPU加快整体运算速度。
上面说得比较抽象,下面就用例子一一加以说明。
Ruby多线程和IOBlock
先看下面一段代码(演示目的,没有实际用途):
#File:block_io1.rb
deffunc1 puts"sleep3secondsinfunc1\n" sleep(3) end
deffunc2 puts"sleep2secondsinfunc2\n" sleep(2) end
deffunc3 puts"sleep5secondsinfunc3\n" sleep(5) end
func1 func2 func3
热门推荐
10 送师姐的祝福语简短
11 上级买车祝福语大全简短
12 宝宝生病简短祝福语大全
13 岁岁祝福语简短独特
14 鼓励孩子小考祝福语简短
15 给司机老师祝福语简短
16 简短的高考祝福语精选
17 致姐姐生日祝福语简短
18 妈妈生日贺卡祝福语 简短