これが架空のシナリオです(これは宿題ではありません):
何人かの人々はテーブルと流しのある台所にいます。それらはすべて同時に食べることができます。ただし、一度にシンクを使用できるのは1人だけであり、誰かがシンクを使用しているときはいつでも、誰も食事をすることはできません。
どの同期プリミティブが必要で、どのように設定する必要がありますか?これにセマフォが必要な場合(たとえば、.NETのセマフォhttp://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx)、これを実現するためにどのように構成して使用しますか?