From: take_tk Date: 2003-12-09T16:56:13+09:00 Subject: [ruby-dev:22193] 自己代入演算子とスレッドのロックについて たけ(tk)です 次のようなスクリプトを何回か実行すると、cnt の値が200未満になることがあ ります。 自己代入演算子(cnt+=1)の実行中にはスレッドが切り替わらないようにはできま せんでしょうか? ---- cnt1=cnt2=cnt = 0 t1 = Thread.new{100.times{cnt1+=1; cnt+=1; p [:th1,cnt1,cnt]; sleep(0.01)}} t2 = Thread.new{100.times{cnt2+=1; cnt+=1; p [:th2,cnt2,cnt]; sleep(0.01)}} sleep(5) ---- ##[:th2, 99, 196] ##[:th1, 99, 197] ##[:th2, 100, 198] ##[:th1, 100, 199] Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武