0
私は誰もアクションXを行うすべてのクライアントAi(A1、...、An)を持っています。そして、アクションYを実行するサーバーBです。しかし、Yは、誰も実行しない場合にのみ実行できます。同期ブロック:多くのオブジェクトをロックしますか?
私はミューテックスロックを考えます:すべてのクライアントは独自のロックLiを持っています。これは、クライアントのために問題ありませんが、それはこのような何か、サーバBのために恐ろしいようになります。
synchronized(L1){
synchronized(L2){
...
}
}
は、この種の問題のために任意のより良い解決策はありますか?
セマフォーまたは原子カウンターを使用してクロスサーバーを使用する場合 – Antoniossss
セマフォーを使用する場合、クライアントの数として不確実な許可の数を正確に指定する必要があります。 – Silver
@シルバー真実ではありません。あなたは1000の許可を持つ 'Semaphore'を作成し、Bは常に1000をすべて取得しようとします。クライアントがチェックアウトしている場合は、それを待たなければなりません。 – Kayaman