Als «synchronized» getaggte Fragen

Ein Block oder eine Methode wird als "synchronisiert" bezeichnet, wenn die Eingabe durch das Java-Schlüsselwort "synchronized" gesteuert wird. Dies führt dazu, dass der Zugriff darauf jeweils auf einen einzelnen Thread beschränkt wird: Wenn gleichzeitige Zugriffe auftreten, werden sie in einer nicht angegebenen Reihenfolge sequentiell ausgeführt.



22
Vermeiden Sie (dies) in Java synchronisiert?
Immer wenn auf SO eine Frage zur Java-Synchronisation auftaucht, möchten einige Leute darauf hinweisen, dass synchronized(this)dies vermieden werden sollte. Stattdessen sei eine Sperre einer privaten Referenz vorzuziehen. Einige der angegebenen Gründe sind: Ein böser Code kann Ihr Schloss stehlen (sehr beliebt, hat auch eine "versehentliche" Variante) Alle synchronisierten Methoden innerhalb …

4
Unterschied zwischen flüchtig und synchronisiert in Java
Ich wundere mich über den Unterschied zwischen dem Deklarieren einer Variablen als volatileund dem Zugriff auf die Variable in einem synchronized(this)Block in Java. Laut diesem Artikel http://www.javamex.com/tutorials/synchronization_volatile.shtml gibt es viel zu sagen und es gibt viele Unterschiede, aber auch einige Ähnlichkeiten. Ich interessiere mich besonders für diese Information: ... Der …

2
Was ist der Grund, warum "synchronisiert" in Java 8-Schnittstellenmethoden nicht zulässig ist?
In Java 8 kann ich leicht schreiben: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Ich werde die vollständige Synchronisationssemantik erhalten, die ich auch in Klassen verwenden kann. Ich kann den synchronizedModifikator …


12
Wenn ich zwei Methoden in derselben Klasse synchronisiert habe, können sie gleichzeitig ausgeführt werden?
Wenn ich zwei Methoden in derselben Klasse synchronisiert habe, können sie dann gleichzeitig auf demselben Objekt ausgeführt werden ? beispielsweise: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } Ich weiß, dass ich nicht methodA()zweimal auf demselben Objekt …



8
Synchronisation des nicht endgültigen Feldes
Jedes Mal, wenn ich in einem nicht endgültigen Klassenfeld synchronisiere, wird eine Warnung angezeigt. Hier ist der Code: public class X { private Object o; public void setO(Object o) { this.o = o; } public void x() { synchronized (o) // synchronization on a non-final field { } } } …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.