blockを出るときにlocal変数をdestructorが自動で開放する。C++は書き忘れはない。抜けるときに勝手にunlockする。C#はdisposableがある。C#ではlockはcompilerが勝手にやってくれる。ネスト交差させる書き方の要求があれば、unlockが自動開放でないことも好意的に解釈できる。lockしたownerが記録されて、自分がオーナであることがわかる。自分のlockした中身に再度進入できる。semaphoreにはownerの考えがないので、誰が開放してもよい。入金accountオブジェクトにtransferメソッドを最初から持たせるべきか?トランザクションロジックは外出しのほうがいいはず、しかしlockメソッドがpublicなのは不安。ロックを次々手繰り寄せる方法。可変長操作の時に有効。その連結の両端のみをつかんでいればよい。操作が可能だかDCASは存在しない。実行性能への配慮hotspotが最適化したコードはdumpして見るしか手段がない。リードライトロックJavaの場合はすべてのobjectが組み込みlockを持っているのでトレースしやすい。JConsoleでアクセスするとdeadlockの検知ができる、しかしReentrantLockの検出は難しい。タイムアウトは設定可能、waitの引数でセットできぁk!#!!!!timeoutすると、処理が続行するだけ、timeoutの結果は視h$l$J$$!!!!notfifyAll()は引数なしなので、呼ばれたからといって自分の条件が成立したとはいえない。通知List14-8の実装は、本当に空のときしか通知しないので、使うのはちょっと怖い。表記上notify()とnotifyAll()ではnotify()がデフォルトに見えるが間違い、notifyAll()をまず使うべき。Conditionインターフェイスを使用する。AbstactQueuedSynchronizerがある。