Ich habe einige Fragen zur Verwendung und Bedeutung des synchronizedSchlüsselworts. Welche Bedeutung hat das synchronizedSchlüsselwort? Wann sollten Methoden sein synchronized? Was bedeutet es programmatisch und
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.
Ich habe einige Fragen zur Verwendung und Bedeutung des synchronizedSchlüsselworts. Welche Bedeutung hat das synchronizedSchlüsselwort? Wann sollten Methoden sein synchronized? Was bedeutet es programmatisch und
Kann mir jemand anhand eines Beispiels den Vorteil einer synchronisierten Methode gegenüber einem synchronisierten Block
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...
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...
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...
Wenn ich zwei synchronisierte Methoden in derselben Klasse habe, aber jeweils auf unterschiedliche Variablen zugreift, können 2 Threads gleichzeitig auf diese beiden Methoden zugreifen? Tritt die Sperre für das Objekt auf oder wird sie so spezifisch wie die Variablen innerhalb der synchronisierten...
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...
In der Java-Dokumentation heißt es: Es ist nicht möglich, dass zwei Aufrufe synchronisierter Methoden für dasselbe Objekt verschachtelt werden. Was bedeutet das für eine statische Methode? Da eine statische Methode keinem Objekt zugeordnet ist, wird das synchronisierte Schlüsselwort die...
Was bedeutet dieser Java-Code? Wird es alle Objekte von sperren MyClass? synchronized(MyClass.class) { //is all objects of MyClass are thread-safe now ?? } Und wie unterscheidet sich der obige Code von diesem: synchronized(this) { //is all objects of MyClass are thread-safe now ??...
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 { } } } Deshalb habe...
In Java ist die idiomatische Methode zum Deklarieren kritischer Abschnitte im Code die folgende: private void doSomething() { // thread-safe code synchronized(this) { // thread-unsafe code } // thread-safe code } Fast alle Blöcke werden synchronisiert this, aber gibt es dafür einen...