C# を使って、複数スレッドで協調動作する簡単なメッセージキューの 作成がいかに苦労するかというのをお見せします。(約62分) まとめ: キューのみ → エラーになる。 キュー + spin lock (ポーリング) → 動くけどCPUの無駄。 キュー + ウェイト×1 → 一度に複数回 送られたらダメ。 キュー + ウェイト×2 (ぎっこんばったん方式) → queue じゃない。 キュー + ウェイト + 条件判定 → 受け取り側が複数個あるとダメ。 キュー + Semaphore → ようやく完成。 マルチスレッドプログラミングは世界を滅ぼす。 参考資料: Unixで動くC#コンパイラ: gmcs (Mono), cscc (dotgnu, C#) エディタ: Emacs で csharp-mode.el。 文書: monodoc, ECMA-335。 (新山はこのツールでXMLをプ