クラスに同期メソッドがあり、1つのスレッドがそれを入力すると、別のスレッドが別のオブジェクトで同じメソッドを呼び出すことができます。Javaでのスレッドと同期
3
A
答えて
7
はい、方法がstatic
でない場合。
非スタティックメソッドは、this
で同期します。したがって、この方法:
public synchronized void foo() {
// do stuff
}
はこの1つを効果的に等価です:
public void foo() {
synchronized(this) {
// do stuff
}
}
static
同期メソッドは、現在のクラスに同期します。したがって、このような方法:
public static synchronized void bar() {
// do stuff
}
はこの1を効果的に等価です:
public static void bar() {
synchronized(ThisClass.class) {
// do stuff
}
}
0
方法は次のようにマークされている場合はい、別のスレッドがこのクラス
3
のインスタンスからこのメソッドを呼び出すことができますの場合、ロックはオブジェクト上に保持されます。つまり、別のオブジェクトの同じメソッドへの呼び出しはロックされません。
ただし、メソッドがstatic
の場合、クラス全体で保持され、2回目の呼び出しで同時に実行することはできません[ブロックされます]
関連する問題
- 1. Javaの同期とスレッド
- 2. Javaのスレッド/同期
- 3. javaスレッド同期ブロック
- 4. Javaのスレッド - 同期(本)
- 5. のJavaスレッド同期方法
- 6. Java用スレッドの同期
- 7. 別のスレッド内でのJavaの同期
- 8. スレッドと同期
- 9. Javaは:同期のスレッドで失敗
- 10. C#スレッドと同期
- 11. のJavaスレッドの同期問題
- 12. javaスレッドの同期の問題
- 13. Javaの同期の違いスレッド
- 14. 非同期スレッドと同期スレッドの違い
- 15. 同期スレッドでの同期の問題
- 16. 非同期スレッドからのJava同期データベースマネージャー
- 17. Java同期クラスとこれは2つのスレッドで
- 18. スレッドの停止と同期
- 19. スレッドと同期の例
- 20. UIスレッドとの同期
- 21. syncwarpとのスレッド同期
- 22. COMスレッドと.NETの同期
- 23. 同期とのスレッドが
- 24. UIスレッドとAsyncTask同期
- 25. スレッド同期とメンバ関数
- 26. 非同期スレッドとセッション
- 27. Pythonでのスレッドの同期
- 28. Pythonスレッド同期
- 29. スレッド同期は
- 30. スレッド同期
これはちょっとミスリーディングです同じ参照を共有するクラスはメソッドが静的である必要はありません。 –
@ Johan: "同期されたメソッド"は、通常、その宣言で(メソッド本体内ではなく) 'synchronized'キーワードを使用するメソッドを意味します。つまり、彼らは実際に差分オブジェクトに同期します。 –
驚くほど明確に、ありがとう、それを置くための多くの:) – shreyasva