私は実生活で興味深い問題に直面しています。ここに問題を単純化しました。
2 つのメソッド A() とメソッド B() を設計します。それぞれの方法は、元素原子 (A または B) を生成することと考えられます。化合物 A[N]B[M] には、N 個の A 原子と M 個の B 原子が必要です。
N 個の A アトムと M 個の B アトムを取得する前に、A() および B() への各呼び出しがブロックされます。N 個の A アトムと M 個の B アトムに到達すると、最初の NA() 呼び出しと最初の MB() 呼び出しが返されます。たとえば、N+2 の A() 呼び出しを行い、続いて MB() 呼び出しを行うと、最初の NA() 呼び出しとすべての MB() 呼び出しが返されます。2 つの A() 呼び出しがブロックされたままになりますか?
この問題を解決するにはどうすればよいですか? 私はJavaを使用しています。