だから私はかなりの助けが必要です。つまり、コーヒーショップをシミュレートすることです。 5席のコーヒーショップです。空席があるときに到着したらすぐに座席を取ることができます。しかし、5つの座席がいっぱいになると到着すると、すべての客がコーヒーを持っていることを意味します。座って座る前にパーティー全体が空いてしまうのを待たなければなりません。キューとセマフォを使用したコスプレマザー/従業員スレッドのシミュレーション
これは、スレッドを使用して実施する必要があります。顧客数はコマンドライン引数として渡されます。
とにかく、これについてどうやってどうやって解決するかがわかりません。
私は、提供されたSemaphoreクラスを使用し、 "CustomerThread"タイプの2つのキューを作成し、そのうちの1つを現在飲んでいる顧客のキューにし、または、ラインで待っているものがBlockedQueueであるべきですか?しかし、私はどのように5シートルールを実施するか分からない。たとえば、2つのスレッドが終了して店を出ると言うと、2つの座席が開いていますが、5つが開いている間は、次の5つを飲み口に追加して待ち行列から取り除くことはできません。
私は飲んだり座ったりしません。待ち行列は待ち行列のためのものです。彼らが座って飲んでいる時間を決定するものがなければなりません。 5シートルールは、着信顧客を処理するロジック上の外部ロックで実行できます。すべてが消えたときに全部で5つの座席が取られ、解放されると、それは設定されます。 – ChiefTwoPencils