From: nobu.nakada@... Date: 2000-01-14T00:04:07+09:00 Subject: [ruby-list:20196] Re: thread について なかだです。 At Thu, 13 Jan 2000 17:44:30 +0900, Yasushi Abe (阿部靖司) wrote: > ところがこれを実行すると、 > >Thu Jan 13 17:32:42 GMT+9:00 2000 > >1 sec sleep Thu Jan 13 17:32:43 GMT+9:00 2000 # > >2 sec sleep Thu Jan 13 17:32:44 GMT+9:00 2000 # > >3 sec sleep Thu Jan 13 17:32:45 GMT+9:00 2000 # > >4 sec sleep Thu Jan 13 17:32:46 GMT+9:00 2000 # > >5 sec sleep Thu Jan 13 17:32:47 GMT+9:00 2000 # > >5 sec sleep Thu Jan 13 17:32:48 GMT+9:00 2000 # > >5 sec sleep Thu Jan 13 17:32:49 GMT+9:00 2000 # > >5 sec sleep Thu Jan 13 17:32:50 GMT+9:00 2000 # > となってしまいます。 > Thread:0xa066900は1秒だけ停止するスレッドになると思っていたのですが。 > #!/ruby/ruby > > require "thread" > > def s(a) > sleep(a) > print a," sec sleep\t",Time.now,"\t",Thread.current,"\n" > end > > t = [] > > print Time.now,"\n" > > for i in 1..5 > t[i] = Thread.start { > loop do > s(i) > end > } > end これだと、スレッド間で i を共有していることになります。こうして みてください。詳しくは Ruby 本 p.334。 j = i loop do s(j) end -- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦