私は眠っている床屋のプロブをやっています。そのため、最初に 2 秒間の「スリープ」を挟んで 10 個の顧客スレッドを作成します。今、最初のクライアントが髪を切って、5 秒間寝ていることを意味します..次のスレッドのための待合室があり、3 つのスレッドのみの場所があります。
顧客スレッドがヘアカットを受けており、次の 3 つのスレッドがキューに入っている場合、それ以降に作成された他の顧客スレッドは、3 席の待合室に利用可能な位置がない限り停止する必要があります。
最初の顧客がカットされると、2 番目の顧客のカットが開始されるため、2 つのスレッドがキューに入れられます。この場合にのみ、もう 1 つのスレッドが待機に参加できます。
これらすべてのタスクを実行するには、スリープ、割り込み、参加をどこで使用するかを簡単に教えてください。特に、他のスレッドが終了するまでスレッドを待機させる方法と、現在待機/スリープしているスレッドの数を検出する方法は?