[前][次][番号順一覧][スレッド一覧]

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...       ]