Was bedeutet synchronized?

Status
Nicht offen für weitere Antworten.
B

ByteRider

Gast
Hallo zusammen,

ich bin ein ziemlicher Neuling im Java-Applet programmieren.
Meine Frage lautet, wie funktioniert Synchronized ? Bzw. was macht es genau ?

Wenn ich eine Methode habe ...

z.B.
-------------------------------------
int global=0;

synchronized void Test() {
int priv=1;
priv++;
global=v+1;
Test2();
}

private void Test2(){
global++;
}
-------------------------------------
bedeutet es,
* dass Test() nur EINMAL aufgerufen werden kann ( ich meine NACHEINANDER, einzeln
* in dieser Zeit, in der es aufgerufen wurde nicht auf die Variablen "v" und "b" zugegriffen werden kann ?
* Ist Test2(); automatisch auch Synchronized ??
* Kann Test2() die Variablen in Test ändern, da es praktisch durch Test aufgerufen wurde ???
* Wie lange ist Test() gesperrt, bis Test2 zurückkehrt ??

Ich werde aus den Dokumentationen nicht schlau.
In einem Buch steht, dass es nur FÜR Methoden gesperrt wird, die ihrerseits synchronized sind .. ???


SORRY für diese Anfängerfragen ! Aber leider blicke ich durch die Dokus nicht durch ?!



Gruß

Andy
 

L-ectron-X

Gesperrter Benutzer
Das Schlüsselwort macht eine Methode oder einen Programmabschnitt Thread sicher. Wenn Du vor hast Deine Methode von verschiedenen Threads aufrufen zu lassen, schreibst Du syncronized davor. Wenn nun ein Thread einen solchen Bereich betritt, wird dieser Bereich für andere Threads, die auch darauf zugreifen möchten für diese Zeit gesperrt, so dass die Daten einer Klasse konsistent bleiben.
 
B

ByteRider

Gast
bleiben denn dann die Variablen gesperrt ?
Die Globale , etc. ?? ( siehe Fragenkatalog oben ?? )


Also benötige ich es z.B. wenn ich einige Veränderungen in der "update" und "repaint" methode
vornehme ?

als Beispiel :

Ich habe eine globale Variabel ...

---------------------
boolean Teil=false;

public update(....) {
if (teil) { .. nur teilbereich neuzeichnen ... }
else { .. allles neuzeichnen ... }
}

public paint(..) { zeichenmethoden }

---------------------

Ich habe ein Applett mit einem MouseMotionListener... Immer wenn die Maus bewegt wird,
werden Koordinaten überprüft und je nach dem der mit PAINT ausgegebene Text mit einem
farbigen Viereck hinterlegt.
Da es bei schnellen Mausbewegungen flackert, habe ich es so verändert, dass nur die betreffende
Zeile gelöscht und neu gezeichnet wird.
Hierzu wird die Variable teil auf TRUE gesetzt.

Wenn aber ein Steuerelement betätigt wird, muss der gesamte Bereich neu gezeichnet werden,
dazu wird die Variable teil auf FALSE gesetzt.

Das Problem ist, wenn das Steuerelement betätigt wird, wird in einem ungünsigen Fall auch
die Maus bewegt. Beide Aktionen kommen sich ins Gehege.

Ich muss also irgendwie mit SYNCHRONIZE arbeiten, dass immer ein komplettes Zeichnen oder
teil Zeichnen komplett ohne Störung abgearbeitet wird.

Hierzu müsste ich GENAU wissen, wie synchronized arbeitet

Gruß

Byte
 

nollario

Bekanntes Mitglied
Methode synchronized:

Code:
public synchronized void...
dann ist das objekt, zu dem die methode gehört gelocked! (bei static methoden ist das klassen
objekt gelocked (this.class)


Block synchronized:

Code:
synchronized (obj){...}

hier ist das angegebene objekt gelocked...
 
B

ByteRider

Gast
ich bin leider kein Profi, wie gesagt Anfänger.

Ich weiß nicht, wass diese Aussage bedeutet !

Gruß

Byte
 
G

Guest

Gast
nur die Variablen, die in der Synchronized initialisiert wurden oder auch die globale Variabel ?
Was ist mit der Methode die dort aufgerufen wird ??

Gruß

Byte
 

Reality

Top Contributor
Wenn eine Instanz von einer Klasse zugreift beispielsweise Instanz/Variable a, dann sind alle Methoden und Variablen (auch global) von dieser gesperrt, wenn sie in einer synchronized-Methode aufruft.

Ich habe dir den Link geschickt, wo Beni es mir erklärt hat.
Wenn eine Methode synchronized ist, wird das ganze Objekt gesperrt, bis diese Methode ausgeführt wurde.
Also "a.foo" sperrt das ganze a, "b.bar" sperrt das ganze b...

Liebe Grüße
Reality
 

meez

Top Contributor
So kann man relativ einfach Threads gegeeinander Verriegeln....
Du kannst es aber z.B.. auch mit Semaphoren machen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
onlyxlia Was bedeutet das @Override? Java Basics - Anfänger-Themen 1
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
S Was bedeutet ungleich (in diesem Zusammenhang)? Java Basics - Anfänger-Themen 2
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9
H Was bedeutet das: [I@7d4991ad? Java Basics - Anfänger-Themen 20
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
MiMa Was bedeutet unchecked or unsafe operations? Java Basics - Anfänger-Themen 6
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
O Was bedeutet das hier 999_983? Java Basics - Anfänger-Themen 2
D Was bedeutet diese Schreibweise? Java Basics - Anfänger-Themen 9
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
S Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 2
D Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 23
R Was bedeutet -1 Java Basics - Anfänger-Themen 2
V OOP Was bedeutet das "aBruch" Java Basics - Anfänger-Themen 6
U Was bedeutet $@ in der Linux Kommandozeile Java Basics - Anfänger-Themen 3
dave253 Was bedeutet (String args[])? Java Basics - Anfänger-Themen 6
D was bedeutet this. bei Konstruktoren? Java Basics - Anfänger-Themen 4
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
V Was bedeutet das? Java Basics - Anfänger-Themen 4
G zeile: Was bedeutet das in der Methode? Java Basics - Anfänger-Themen 4
Y Was bedeutet "this" ohne dem Punkt und dem Atrributnamen danach? Java Basics - Anfänger-Themen 2
M was bedeutet setEnabled Java Basics - Anfänger-Themen 12
F Was bedeutet '@'? Java Basics - Anfänger-Themen 3
F Frage von einem Neuling: Was bedeutet Scanner scanner ? Java Basics - Anfänger-Themen 5
K Schlüsselworte Was bedeutet oder was ist die SIGNATUR?? Java Basics - Anfänger-Themen 4
O Was bedeutet public class value? Java Basics - Anfänger-Themen 3
A Was bedeutet der Operator *= ? Java Basics - Anfänger-Themen 2
N Was bedeutet << Java Basics - Anfänger-Themen 5
G Was bedeutet diese Zeile? Java Basics - Anfänger-Themen 2
J Was bedeutet This. ? Java Basics - Anfänger-Themen 4
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
D Was genau bedeutet und bewirkt dieses @override? Java Basics - Anfänger-Themen 15
J Was bedeutet dieses a [i].length? Java Basics - Anfänger-Themen 3
D Was bedeutet < > Java Basics - Anfänger-Themen 4
D Was bedeutet das ?: Java Basics - Anfänger-Themen 9
B Was bedeutet static<T>?? Java Basics - Anfänger-Themen 6
0 Was bedeutet dieser Generic-code? Java Basics - Anfänger-Themen 3
php1 Was bedeutet der Modifier static ? Java Basics - Anfänger-Themen 3
K Was bedeutet das eigentlich.... Java Basics - Anfänger-Themen 18
G Was bedeutet? Java Basics - Anfänger-Themen 7
G Was bedeutet charAt()? Java Basics - Anfänger-Themen 5
J Was bedeutet der Doppelpunkt ":" ? Java Basics - Anfänger-Themen 3
G was bedeutet //TODO Java Basics - Anfänger-Themen 4
A Was bedeutet folgende Programmcodezeile genau Java Basics - Anfänger-Themen 6
B was bedeutet "this" Java Basics - Anfänger-Themen 8
L Was bedeutet das Wort "this" ? Java Basics - Anfänger-Themen 2
K was bedeutet '?' Java Basics - Anfänger-Themen 3
R Was bedeutet diese Zeile. Java Basics - Anfänger-Themen 8
S was bedeutet Typisiert? Java Basics - Anfänger-Themen 3
D Was bedeutet : ? Java Basics - Anfänger-Themen 4
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
H Was bedeutet "class Liste<E>" Java Basics - Anfänger-Themen 2
J was bedeutet null Java Basics - Anfänger-Themen 7
padde479 Compiler-Frage: Was bedeutet deprecated? Java Basics - Anfänger-Themen 4
P Was genau bedeutet Feld Java Basics - Anfänger-Themen 3
G Was bedeutet diese Fehlermeldung von Tomcat Java Basics - Anfänger-Themen 29
G indexOf() - was bedeutet -1 ? Java Basics - Anfänger-Themen 27
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
G setName bei JTextfield. Was bedeutet das? Java Basics - Anfänger-Themen 7
D was bedeutet " Seiteneffekt " ? Java Basics - Anfänger-Themen 4
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
T Was bringt das synchronized bei der Methode? Java Basics - Anfänger-Themen 12
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

Ähnliche Java Themen

Neue Themen


Oben