ruby-reference-manual:599
From: SASADA Koichi <ko1@a...>
Date: Tue, 04 Dec 2007 14:58:16 +0900
Subject: [ruby-reference-manual:599] Re: r2329: Thread
ささだです. Kazuhiro NISHIYAMA wrote: >> Modified: doctree/trunk/refm/api/src/_builtin/Thread >> =================================================================== >> --- doctree/trunk/refm/api/src/_builtin/Thread 2007-12-01 15:57:34 UTC (rev 2328) >> +++ doctree/trunk/refm/api/src/_builtin/Thread 2007-12-03 12:20:33 UTC (rev 2329) >> @@ -8,6 +8,8 @@ >> ネイティブスレッドを用いて実装されていますが、 >> 現在の実装では Ruby VM は Giant VM lock を有しており、同時に実行される >> ネイティブスレッドは常にひとつです。 >> +ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には >> +GVL を解放します。その場合にのみスレッドは同時に実行され得ます。 >> #@else >> ただし、現在の実装では Ruby インタプリタは時分割でスレッドを実行しますので、 >> スレッドを使うことで実行速度が速くなることはありません。 > > 「Giant VM lock」のところに「(GVL)」か何かを追加して > 後で出てくるGVLと同じものを指すということをわかりやすく > すると良いのではないでしょうか? 実は,GVL を解放するかどうかは IO 関連だけではなく,C 拡張ライブラ リであれば誰でも出来るので,例えば NArray なんかの実計算を並列化,な んてことも(やろうと思えば)出来ます. -- // SASADA Koichi at atdot dot net -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/
598 2007-12-04 06:49 [zn@m... ] Re: r2329: Thread -> 599 2007-12-04 06:58 ┣[ko1@a... ] 600 2007-12-04 13:40 ┗[sheepman@s... ]