0
私はちょうどいくつかのコードを読んで、ローカルオブジェクトを同期させたコードがあることに気付きました。新しいローカルオブジェクトを作成してから何を意味するのかを教えてもらえますか?なぜそれをロックするのですか?私たちは応答を受信したときにローカルオブジェクトと同期
list queue;
...
public send()
{
entry = waitEntry();
//add this object into the list
queue.add(entry);
...
synchronized(entry)
{
//do some sth
entry.wait();
}
}
はその後、ご覧のとおり
public receive()
{
entry = list.get() <-- get the object we have sent before
synchronized(entry)
{
entry.notify()
}
}
このオブジェクトのロックを解除し、私はすでに私はそれが再び()メソッドを受け取るロックすることができますどのように、前に「エントリー」をロック?
ありがとうございました。
に関する記事を参照してください。これらの方法は2つのスレッドに分かれています。 1はjavaからcに送信され、もう1つはcからjavaに通知されます。 – dinhha471
これは、JavaからJavaにもっとよく似ています。待機中のスレッドがスリープ状態になるので、 'wait()'は時間のロックを解除します。目が覚めたら再びロックします。 – zapl
これはローカルオブジェクトではありません。 – Galik