なぜJavaオブジェクトはロックおよび条件キューのように動作できますか?
でのJava並行処理から
すべてのJavaオブジェクトは、暗黙のうちに、同期の目的のためにロックとして機能することができます。これらのビルトインロックは、イントリンシックロックまたは モニタロックと呼ばれます。
「すべてのJavaオブジェクトが暗黙的にロックとして機能する」とはどういう意味ですか?
すべてのJavaオブジェクトのクラスは、次のようにLock
インターフェイスを実装していますか?それはすべてのJavaオブジェクトのクラスはダックタイピングの感覚では、ロックのようなオブジェクトを作用させるいくつかの方法を提供することが
public interface Lock {
void lock();
void lockInterruptibly() throws InterruptedException;
boolean tryLock();
boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException;
void unlock();
Condition newCondition();
}
を意味するのでしょうか?各Javaオブジェクトをロックとして機能できるのと同じよう
、各オブジェクトは、条件キュー、ウェイト、通知、およびオブジェクト内のnotifyAll 方法として 行為は、本来の状態キューのAPIを構成することができます。
「各オブジェクトは条件キューとしても機能します」とはどういう意味ですか?
それは各Javaオブジェクトのクラス
- は、いくつかの「条件キュー」インターフェース、または
- ダックタイピングの意味での条件キューなどのオブジェクトを作用させるいくつかの方法を提供を実装することを意味しています?
ありがとうございます。
"すべてのJavaオブジェクトのクラスがLockインターフェイスを次のように実装していますか?いいえ、 'synchronized(expression){...}'の式としてオブジェクトを使用できることを意味します。 –
ありがとうございます。どのようなタイプのオブジェクトは、 'synchronized'がかっこ内に期待していますか? – Ben
[任意の参照タイプ](https://docs.oracle.com/javase/specs/jls/se9/html/jls-14.html#jls-14.19)。それがポイントです。 –