2012-11-30 19 views
4

我一直在閱讀關於Ruby 1.9 Thread的內容,我發現所有ruby線程都通過Global Interpreter Lock(GIL for friends),併發實際上並不存在。Ruby 1.9中非併發Ruby線程的優點?

我曾做過一個試驗(沒有任何信號,也沒有等待),並使用線程不僅不會提高,但實際操作需要更多的時間不是串行

運行他們的表現我的問題基本上是 - 請告訴我點對於這些線程,如果它們不是併發的?他們有希望在將來同時進行嗎?

回答

3

很多其他的Ruby解釋器(JRuby,Rubinius)實際上並沒有GIL。此外,MRI 2.0也將取消GIL。

此外,在很多情況下(例如等待IO時)解釋器切換到另一個線程。所以雖然它不是技術上多線程(在MRI /稀土元素1.9的情況下),它確實有一些好處。

0

並行性不存在,但Ruby線程不阻止併發執行Ruby代碼。即使在單個核心機器上,也可以執行併發代碼。我想你只是將術語「並行」和「並行」混爲一談。

請參閱使用Ruby線程通過Jesse Storimer瞭解更多詳情。