one in one out requirement vs uniform waiters requirement in multi threading java
<p>What are following terms while explaining Bounded buffer example in multi threading:</p>

<p>1.one-in, one-out requirement</p>

<p>2.uniform waiters requirement</p>

<p>I have seen following statement in book <a href="https://books.google.co.in/books?id=fv4tEfwgcjsC&amp;pg=PA303&amp;lpg=PA303&amp;dq=BoundedBuffer%20meets%20the%20one-in,%20one-out%20requirement,%20but%20does%20not%20meet%20the%20uniform%20waiters%20requirement%20because%20waiting%20threads%20might%20be%20waiting%20for%20either%20the%20%E2%80%9Cnot%20full%E2%80%9D%20and%20%E2%80%9Cnot%20empty%E2%80%9D%20condition.&amp;source=bl&amp;ots=bE96oHA77E&amp;sig=TWRpCV2Yurh2Ps0DF94wmn3u05k&amp;hl=en&amp;sa=X&amp;ved=0ahUKEwiB2NfD-LTOAhVMOo8KHSFcD0UQ6AEIHTAA#v=onepage&amp;q=BoundedBuffer%20meets%20the%20one-in%2C%20one-out%20requirement%2C%20but%20does%20not%20meet%20the%20uniform%20waiters%20requirement%20because%20waiting%20threads%20might%20be%20waiting%20for%20either%20the%20%E2%80%9Cnot%20full%E2%80%9D%20and%20%E2%80%9Cnot%20empty%E2%80%9D%20condition.&amp;f=false" rel="nofollow">java concurrency in practice</a></p>

<pre><code>BoundedBuffer meets the one-in, one-out requirement, but does not meet the uniform waiters requirement because waiting threads might be waiting for either the “not full” and “not empty” condition.
</code></pre>

<p>Can someone explain me the two terms and their difference.</p>

<p>Thanks</p>