1
A
答えて
4
いいえ、両方のメソッドが同じクラスにあるとします(また、static
または両方がstatic
ではない)。メソッドは、入力しようとするスレッドがモニタオブジェクトを保持できる場合にのみ入力されます(例:this
)。スレッドは既にモニターを取得しているので、それはさらに問題なく2番目のメソッドに簡単に入ることができます。
+0
これはリエントラントロックと呼ばれています。 – toto2
0
がA
でロックを取得し、B
をロックしたい場合。 Thread 2
にはB
のロックがあり、A
にもロックが必要です。 これはデッドロックです。 これ以外のことはすべて可能です。
0
は異なり:
- をこれら2つ(またはそれ以上)の異なるオブジェクト、
- 複数のスレッドがこれらのオブジェクトにアクセスする場合、
- にこれらのオブジェクトのロック順序を変えることができる場合の方法を同期している場合(あるケースではobject1-> object2と他のケースのobject2-> object1)
はい、デッドロックが発生する可能性があります。
しかし、同じオブジェクトの同期されたメソッドについて話している場合、デッドロックを取得することはできません。オブジェクトのモニタはリエントラントです。既に保持している場合は、再度モニタを要求できます(同じオブジェクトに同期ブロックを入力します)。
関連する問題
- 1. 非同期ループ内の非同期メソッド
- 2. 非同期メソッドの非同期メソッド
- 3. 非同期メソッドを同期する
- 4. Swift:非同期メソッドを同期メソッドでラップする方法は?
- 5. Promise.map内の非同期メソッド
- 6. 非同期メソッドから同期メソッドを呼び出す
- 7. 別の非同期 `each`メソッド(NodeJS)の内部で非同期メソッド呼び出しを行う方法は?
- 8. C#の同期メソッド
- 9. 同期メソッドのオーバーライド
- 10. 非同期メソッド非同期に新
- 11. 同期または非同期メソッド
- 12. RxJavaで非同期メソッドを同期する方法は? RxJavaの非同期ウォーターフォール
- 13. Entity Framework 6非同期メソッドと同期メソッドのパフォーマンス
- 14. 同じオブジェクトの同期メソッドから同期メソッドを呼び出す
- 15. BitmapFrameを非同期で非同期メソッドで作成する
- 16. は非同期メソッド
- 17. セマフォ非同期メソッド
- 18. 同期メソッドとReentrantLock
- 19. 同期メソッドangular 2
- 20. チェーン非同期メソッド
- 21. forループ同期メソッド
- 22. 別のメソッドから非同期メソッドを呼び出す方法
- 23. OutOfMemoryエラー:静的メソッド内の同期ブロック
- 24. UIスレッドで同期メソッドを非同期で呼び出す
- 25. 同期メソッドの非同期バージョンを作成する
- 26. Javaのメソッドの同期
- 27. 同じ非同期メソッドとは逆の同期コマンド
- 28. 同期メソッドを非同期に統合する
- 29. 非同期メソッドを待つ
- 30. 同期メソッドのJUnitテスト
2つのメソッドが同じクラスに属していますか? – unholysampler
これはロックオブジェクトに依存します。インスタンスメソッド、静的メソッド、内部同期ブロックを持つメソッドなど、何を意味するのかについて詳しく説明できますか? – Thomas