Javaでは、スレッドt2
が現在別のスレッドによって使用されている同期からロックを取得しようとするとt1
の場合、t2
は実行可能からブロックに切り替わります。正しい? ReentrantLock
さんとはどうですか?スレッド、ロック、および条件の状態
スレッドt1
がロックの使用を終了した場合、t2
は自動的に実行可能に戻りますか、notifyAll()
を使用する必要がありますか?条件なしのReentrantLock
の使用についてはどうですか?条件を使用していない場合は、スレッドt2
に実行可能に戻す方法を通知するにはどうすればよいですか?条件なしでリエントラントロックを使用することは、賢明か、または可能ですか?
この質問にはすでに回答済みです(見つからなかった場合)、私にリンクしていただければ幸いです。
彼は単に "待機中"という言葉を "実行可能"としていると思う。 –
私の混乱は、私が読んでいる本(Cay S. Horstmannによるオブジェクト指向設計とパターン)に由来しています。この本では、以下の記事を読むことができます[スクリーンショット](http://imgur.com/a/qYm36)。これは単純化されているのですか? –
@erikpは私の単純化のようです - [JavaDocs of Thread.State](https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.State.html) – Hulk