原です。

(1)Mutex に関しての質問です。チュートリアルには共有するデータ
の保護の例として

  m.synchronize {
    v = v + 100
  }

というのがあがっていますが、他にこの様に保護しないといけない演算は
どういうものがありますか?

  v.push "abc"

はどうでしょう?

  v["ABC"] = "abc"

は?


(2)Thread: deadlock 、、、とかいうメッセージを出してプログラム
が停止することがありますが、このメッセージが出れば必ず ruby のバ
グといえますか?それともこちらのプログラムのアルゴリズムに検討す
べきところがあるのでしょうか?


(3)あるスレッドが TCPsocket.open でブロックしているときに、
他のスレッドが全て止まる様にみえるのですが、これは仕様ですか?
(それとも私の勘違いかも。)これを回避する方法はありますか?