From: matz@... (Yukihiro Matsumoto) Date: 1998-04-09T16:59:09+09:00 Subject: [ruby-list:7385] Re: [Q] Thread まつもと ゆきひろです In message "[ruby-list:7384] Re: [Q] Thread" on 98/04/09, Keiju ISHITSUKA writes: |やはりスレッドの動作がおかしくなっていると思います. | |preemptiveなスレッドになっているみたいですよ. そうですかねえ. |以下のプログラムがマトモに動きません. tracerを使うと分かりますがth2だ |けが走っているみたいです. 添付のプログラムの | 1000.times {Thread.pass} の部分を | 1000.times {|i| p i; Thread.pass} としたりすると分かると思いますが,コンテキストスイッチはそん なに頻繁に起きませんから(あんまり頻繁だと効率が下がってしま う),このプログラムはそれぞれある程度実行を行いつつ,交互に コンテキストスイッチを行い,仕様通り動いているようです. 出力が行われないのは,上述の行のお蔭で出力を行うメインのスレッ ドの実行頻度が極端に下がってしまったせいだと思います. tracerでth2だけ動いているように見えた理由は分かりません. また,[ruby-list:7376]の問題は別の問題かも知れません. まつもと ゆきひろ /:|)