2009/02/01
Ruby Mutex/thread.rb Imprementation
Rubyのthread.rbの実装がバージョンによりいろいろ違ってわかりにくいな。
Rubyのバージョン | thread.rb | sync.rb | mutex_m.rb | monitor.rb |
---|---|---|---|---|
1.8.5_254より昔 | Pure Rubyだけ | Mutex不使用 | Mutex不使用 | Mutex不使用 |
1.8.5_254と1.8.6_x | Pure Ruby版とCで全部版両方。 | Mutex不使用 | Mutex不使用 | Mutex不使用 |
1.9.x | MutexのみC。QueueとConditionalVariableはRubyでMutex使用。 | Mutex使用 | Mutex使用 | Mutex使用 |
Cで実装されたMutexを使うのと使わないのでは、どれだけ速度面で違いが出るんだろうか。あんまりでないんだろうか。
あと、1.8に限って言えばfastthreadとかもあるんだよね。1.8.6のいくつか以降から使うなとか。でも、eventmachineとかがまだ使っている様子なんだけどどうなんだろう。