Was bringt das synchronized bei der Methode?

The_F4nat1c

Mitglied
Java:
public static synchronized final void restart()
    {
        System.out.println("Initializing restart!");
        disable();
        enable();
        System.out.println("Restart performed!");
    }
Was bring das synchronized?

Bedeutet das ,dass wenn ein Thread die restart Methode aufruft kein anderer thread die disable Methode aufrufen kann?
 
Zuletzt bearbeitet:

The_F4nat1c

Mitglied
Also wenn ich das richtig verstanden habe:
Wenn 2 threads die restart Methode aufrufen wollen führt erst der eine die Methode aus und nachdem er die Methode beendet hat führt der zweite Thread die Methode aus.
 

mihe7

Top Contributor
Ja, auf dem gleichen Objekt (bei static -> Klasse), versteht sich. Aber: die Synchronisierung ist nicht auf die einzelne Methode bezogen, sondern gilt für alle synchronized-Methoden "gemeinsam".
 

Neumi5694

Top Contributor
Als praktisches Beispiel, warum das so ist, schau dir die ArrayList an.
Wenn du ein Objekt aus der Mitte rauslöschst, wird der hintere Teil des Arrays nach vorne verschoben. Während dieser Zeit wäre es gefährlich, auf einen Index weiter hinten zuzugreifen. Je nach Timing kriegst du dann den Wert vor oder nach dem Verschieben, selbst die Abfrage nach der Größe der Liste würde ein zufälliges Ergebnis liefern.
 

The_F4nat1c

Mitglied
Also müsste ich z.b
Java:
public class a{
    ArrayList<String> list = new ArrayList<>();
   
   public void test1(){
      synchronized(list){
        //TODO irgendwas mit der liste
   }
   public void test2(){
      synchronized(list){
        //TODO irgendwas mit der liste
   }
}
benutzen für ne ArrayList.
 

Neumi5694

Top Contributor
Sorry, hab da was falsches gesagt, ArrayList ist eben NICHT synchronized. Irgnd eine List-Implementierung war's, ich hab aber vergessen welche.
Sofern es tatsächlich Zugriffe mehrerer Threads auf die selbe Liste gibt, dann müsste man eingreifen, ich würde allerdints test2 und test1 synchronisieren und nicht etwas innendrin.
Wenn du tatsächlich mal direken Zugriff von mehreren Threads aus auf die selbe Liste erlaubst, dann kannst du sie mit Collections.synchronizedList() schützen, das solltest du aber eh nie machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Scanner nextLine() bringt Dateipfad Java Basics - Anfänger-Themen 1
H Was bringt der Decompiler javap? Java Basics - Anfänger-Themen 2
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
D Methoden ArrayList Rückgabe bringt komische Werte Java Basics - Anfänger-Themen 12
N Übungsaufgabe aus Java Buch bringt Fehler. Java Basics - Anfänger-Themen 10
K Java-Editor: "Starten" bringt Error Java Basics - Anfänger-Themen 15
D Serialisieren, was bringt das? Java Basics - Anfänger-Themen 8
M Was macht bzw. was bringt ein constructor? Java Basics - Anfänger-Themen 12
D setAlwaysOnTop(true); toFront(); - bringt alles nichts Java Basics - Anfänger-Themen 5
K Datentypen Über Collection iterieren bringt fehler Java Basics - Anfänger-Themen 8
S selectionListener bringt NullPointerException Java Basics - Anfänger-Themen 2
C GUI aktualisieren: repaint, validate, Fenstergröße ändern bringt nichts Java Basics - Anfänger-Themen 13
G RowSorter beim JTable bringt Programm durcheinander Java Basics - Anfänger-Themen 23
P was bringt Interface Java Basics - Anfänger-Themen 36
F Generische Methode - was bringt der Wildcard Operator? Java Basics - Anfänger-Themen 7
P mixer.getControl() bringt nur Fehlermeldung . Java Basics - Anfänger-Themen 7
O JOptionPane bringt Fehler Java Basics - Anfänger-Themen 2
A Wochentag über SimpleDateFormat bringt wirre Ergebnisse Java Basics - Anfänger-Themen 4
S Import Pakete oder auflösen . .*, bringt das was? Java Basics - Anfänger-Themen 5
M GregorianCalendar bringt mich um. Java Basics - Anfänger-Themen 8
R Klassen in getrennte Dateien - Was bringt das?! Java Basics - Anfänger-Themen 4
S Eingelesenes Array in JTable bringt kein Ergebnis Java Basics - Anfänger-Themen 8
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
A Thread - Synchronized Java Basics - Anfänger-Themen 10
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
O synchronized Java Basics - Anfänger-Themen 39
O synchronized difference Java Basics - Anfänger-Themen 5
E Synchronisierte Methoden vs. Synchronized(lockObject) Block Java Basics - Anfänger-Themen 7
temi Synchronized(Monitor) Java Basics - Anfänger-Themen 2
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
Shams Synchronized-Schlüsselwort bei Inkrementierung einer statischen Variable Java Basics - Anfänger-Themen 13
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
M Threads synchronized und wait Java Basics - Anfänger-Themen 2
N Threads Probleme mit synchronized Java Basics - Anfänger-Themen 9
B synchronized threads Java Basics - Anfänger-Themen 17
J Threads Synchronized Java Basics - Anfänger-Themen 6
U synchronized / lock Java Basics - Anfänger-Themen 8
P Arraylist synchronized? Java Basics - Anfänger-Themen 6
X3TitanCore Methoden synchronized bei einer Methode Java Basics - Anfänger-Themen 2
P synchronized methoden Java Basics - Anfänger-Themen 3
B warum schließt synchronized andere threads nicht aus? Java Basics - Anfänger-Themen 7
M Synchronized klappt nicht Java Basics - Anfänger-Themen 11
E synchronized Methoden Java Basics - Anfänger-Themen 3
M synchronized( ref ) Java Basics - Anfänger-Themen 3
I Synchronized Threads Java Basics - Anfänger-Themen 4
R Problem: Threads Synchronized machen Java Basics - Anfänger-Themen 5
M OOP Synchronized Methoden, zugriff aus Threads Java Basics - Anfänger-Themen 4
X Threads und synchronized - Verständnisproblem Java Basics - Anfänger-Themen 3
M Kleines Problem mit Threads (synchronized) Java Basics - Anfänger-Themen 3
S Fragen zu synchronized + Singleton! Java Basics - Anfänger-Themen 10
S bin zu blöd für threads - wait, notify, synchronized Java Basics - Anfänger-Themen 11
J simple Frage zu synchronized Java Basics - Anfänger-Themen 4
S Threads: synchronized mach nicht was es soll? Java Basics - Anfänger-Themen 6
L Threads und synchronized Java Basics - Anfänger-Themen 8
R wait() in synchronized - Block oder nicht? Java Basics - Anfänger-Themen 4
X Synchronized Zugriff ArrayList<E> Java Basics - Anfänger-Themen 6
G synchronized Java Basics - Anfänger-Themen 5
M synchronized variables? Java Basics - Anfänger-Themen 8
B Verständnissfrage synchronized Java Basics - Anfänger-Themen 2
S Warum wirkt hier synchronized nicht? Java Basics - Anfänger-Themen 9
C Trotz "synchronized" unerwartete Ausgabe Java Basics - Anfänger-Themen 2
E Synchronized - Methoden in verschied. Klassen Java Basics - Anfänger-Themen 3
C synchronized Java Basics - Anfänger-Themen 2
J Fragen zu Synchronized Java Basics - Anfänger-Themen 6
T synchronized HashMap Java Basics - Anfänger-Themen 7
L Problem mit synchronized und String Java Basics - Anfänger-Themen 2
A Problem mit Threads und synchronized Java Basics - Anfänger-Themen 3
B Was bedeutet synchronized? Java Basics - Anfänger-Themen 8
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben