食事する哲学者の問題
1984年、K. M. Chandy(英語版)と J. Misra は食事する哲学者の問題に別の解法を提案した。それは、任意のエージェント(P1, ..., Pn)が任意のリソース(R1, ..., Rm)を獲得しようとする状況に拡張されたものである。ダイクストラの解法とは異なり、順番付けも任意である。彼らはこの一般化された問題を以下のような解法で解決した。
あるリソースを獲得しようとする2人の哲学者の組合せそれぞれについて、フォークを1個生成して識別番号の小さい哲学者に与える。このフォークは dirty と clean の2つの状態があって、初期状態は dirty である。
哲学者がリソースをいくつか組み合わせて使用したい場合(つまり、食事したい場合)、競合している隣人からフォークをもらわなければならない。そのような自分が持っていない全フォークについて要求メッセージを送る。
要求メッセージを受け取ったフォークを持つ哲学者は、持っているフォークが clean なら持ち続けるが、dirty ならそれを手放す。フォークを要求した側に送る際、それを clean 状態にする。
食事が終わると、フォークは dirty 状態になる。