2017-02-10 10 views
1

から1つのロックされたセクションを呼び出す:クリーンコード - 私はおじさんボブのクリーンコードを読んでいると13章の結論は次のものが含まれ、別の

ロックする必要はありませんコードの領域をロックしないでください。ロックされたセクションを別のセクションから呼び出すことは避けてください。

なぜ、ロックされたセクションを別のセクションから呼び出さないようにすることが推奨されるのですか(リエントラントロックを保持しているとします)?私には完全に実現可能なようです。

+1

異なるロックを使用する別のロックされたセクションから1つのロックされたセクションを呼び出すと、デッドロックの可能性が生じることを意味します。 – Alexander

答えて

0

ロックされたセクションを別のセクションから呼び出すことは避けてください。

異なるロックでロックされたセクションを指します。同じ順序でロックを取得しないと、デッドロックが発生する可能性があります。この問題の興味深い例は、Java tutorialsにあります。

+0

私はちょうど同じように思ったが、残念なことに、そのテキストはそれを明確にしなかった。 – njk2015

1

2つ以上のオブジェクトを同時にロックする必要がある場合は、別の方法でロックセクションを呼び出すことはできません。 デッドロックを回避するには、オブジェクトを常に同じ順序でロックします。

関連する問題