まつもと ゆきひろです

In message "[ruby-list:7384] Re: [Q] Thread"
    on 98/04/09, Keiju ISHITSUKA <keiju / Rational.Com> writes:

|やはりスレッドの動作がおかしくなっていると思います.
|
|preemptiveなスレッドになっているみたいですよ.

そうですかねえ.

|以下のプログラムがマトモに動きません. tracerを使うと分かりますがth2だ
|けが走っているみたいです.

添付のプログラムの

| 1000.times {Thread.pass}

の部分を

| 1000.times {|i| p i; Thread.pass}

としたりすると分かると思いますが,コンテキストスイッチはそん
なに頻繁に起きませんから(あんまり頻繁だと効率が下がってしま
う),このプログラムはそれぞれある程度実行を行いつつ,交互に
コンテキストスイッチを行い,仕様通り動いているようです.

出力が行われないのは,上述の行のお蔭で出力を行うメインのスレッ
ドの実行頻度が極端に下がってしまったせいだと思います.

tracerでth2だけ動いているように見えた理由は分かりません.
また,[ruby-list:7376]の問題は別の問題かも知れません.

                                まつもと ゆきひろ /:|)