したがって、Ruby 1.9.1は現在declared stableになりました。 Railsはそれを扱うことになっており、ゆっくりと宝石がそこに移植されています。Ruby 1.9.1のネイティブスレッド、それは私のために何ですか?
ネイティブスレッドとグローバルインタープリタロック(GIL)があります。
GILが用意されているので、ネイティブスレッドは1.9.1のグリーンスレッドよりも何らかの利点がありますか?
したがって、Ruby 1.9.1は現在declared stableになりました。 Railsはそれを扱うことになっており、ゆっくりと宝石がそこに移植されています。Ruby 1.9.1のネイティブスレッド、それは私のために何ですか?
ネイティブスレッドとグローバルインタープリタロック(GIL)があります。
GILが用意されているので、ネイティブスレッドは1.9.1のグリーンスレッドよりも何らかの利点がありますか?
私は大きな勝利だと思います、そのCベースの拡張子can release the GILです。したがって、たとえば、MySQLアダプタは、他のすべてのRubyスレッドをブロックすることなく、長時間実行されているデータベースクエリをきれいに実行できます。
1.9のスレッドはネイティブですが、一度に1つのスレッドしか実行できないようにするために「速度が遅く」なっています。これは、スレッドが実際に並行して実行された場合、既存のコードを混乱させるためです。
長所:
短所:
priority()
はSolaris、Windows、およびLinuxで異なります。 loop {}
のようなものはLinuxで正常に動作し、他のスレッドは実行可能です。しかし、Solarisスレッドではそのスレッドがプロセスの時間を奪い、あなたは決して終了しません!