私は、オブジェクトと、それらがオブジェクトごとに複数の待機セットを提供する方法について読んでいてCondition
、どのオブジェクトまたはオブジェクト/スレッドのグループが特定のシグナルを受け取るかを区別していました。
なぜ常連はそれをしないのObject
ですか?例えば
それ以外の:
final Condition notFull = lock.newCondition();
final Condition notEmpty = lock.newCondition();
lock.lock();
try {
while (count == items.length)
notFull.await();
items[putptr] = x;
if (++putptr == items.length) putptr = 0;
++count;
notEmpty.signal();
これを行います:
final Object notFull = new Object();
final Object notEmpty = new Object();
lock.lock();
try {
while (count == items.length)
notFull.wait();
items[putptr] = x;
if (++putptr == items.length) putptr = 0;
++count;
notEmpty.notify();
まだ複数の待機セットがあり、通知されたスレッドを区別していませんか?