(2007.6.26 新規作成。2007.7.11 更新。) C言語でのpthreadの関数の使い方について簡単に解説します。C++だとboostとかを使ったほうがいいですが、内部でどのように動いているか見るためにprimitiveなライブラリを使います。 まず、わざとデッドロックさせてみます。ここまではすでにいろいろなサイトで解説されています。加えて、どうやってデッドロックを回避するか考えてみます。 以下は、Fedora 7 Linuxでテストしています。 題材 題材ですが、あまりにメジャーな「哲学者たちの食事」を用います。 哲学者たちの食事 問題を引用しておくと、 専ら考えることを生業とする5人の哲学者たちがひとつの丸い食卓に座っている。中央には大きな皿にスパゲッティが盛ってある。5つのフォークが哲学者たちの間に置いてある。また各哲学者の前には取り皿がおいてある。思考中腹がへったことに