synchronized Klasse?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, gibt es in Java eine Möglichkeit bzw. ein keyword, mit dem man alle Methoden einer Klasse als synchronized deklarieren kann? Ich habe eine Klasse, die Methoden zum Zugriff auf Hardware enthalt (JNI). Im Moment sind alle Methoden als synchronized deklariert. Ich habe mich gefragt ob irgendwie die ganze Klasse als synchronized deklarieren werden kann ?!
 

byte

Top Contributor
Das synchronized Keyword geht nur an Methoden bzw. als Blöcke in Methoden. Du musst also alle alle Methoden der Klasse synchronized machen. Dann nutzen alle Methoden die gleiche Lock des Objects. Verwendest Du in Deiner Anwendung denn überhaupt mehrere Threads? Denn wenn Du nur einen Thread verwendest, dann bringt synchronized nichts, weil dann eh alles sequentiell ausgeführt wird.
 
Hi,
ich würde sogar sagen, dass gerade wenn man mehrere Threads verwendet man vorsichtig sein sollte eine ganze Klasse synchronized zu halten. Klar, irgendwie muss man sich zwar Overhead schaffen, aber der Sinn vom Threading ist das eigentlich nicht. Besser ist es eine Sperre nur da zu setzen, wo sie wirklich nötig ist. Es gilt immer so spät wie möglich erstellen, so früh wie möglich wieder freigeben.

Gruß Der Unwissende
 
G

Guest

Gast
Hallo,

byto hat gesagt.:
Verwendest Du in Deiner Anwendung denn überhaupt mehrere Threads?
Ich habe eine fertige Client/Server-Anwendung bekommen, die in C++ progremmiert ist. Der Cleint-Code besteht eus mehreren Tasks, die vom Server bestimmte Informaitionen abfragen. Meine Aufgabe besteht darin, eine Java-GUI zu erstellen, mit der man diese Informationen ausgeben/beobachten kann. Die GUI soll ferner die Möglichkeit beiten, nur die ausgewahlten Informationen anzuzeigen und für jede Information eine Update-Periode festzulegen. Ich dachte, es sei besser, wenn ich für jeden C++ Task einen Java-Task programmiere, der über JNI (alle Methoden greifen auf die Hardware) die gewünschten Informationen abholt bzw. anzeigt, sobald er gestartet wird.

Der_Unwissende hat gesagt.:
Besser ist es eine Sperre nur da zu setzen, wo sie wirklich nötig ist. Es gilt immer so spät wie möglich erstellen, so früh wie möglich wieder freigeben.
Mir ist keine bessere Idee eingefallen als die ich geschieldert habe. Wichtig ist nur, dass diese Informationen in einer vorgegebenen Periode aktualisiert werden sollen. Für besseren Vorschläge würde ich sehr Dankbar.

Gruß
 
Nur um noch mal zu schauen, dass ich dich richtig verstanden habe:
Du greifst auf Informationen zurück, die du in einzelnen Threads abholst. Was dazu nötig ist, ist ja erstmal egal. Einfach gesagt wird ein Aufruf gestartet (egal ob entfernt oder lokal), der dir einen bestimmten Wert liefert.

Jeder Thread holt sich genau einen solchen Wert bzw. keine zwei Threads holen sich den gleichen Wert, oder?

Und jeder Thread stellt dann in einem Controll diesen Wert da (auch wieder jeder in einem eigenen?). Das ganze wird dann in gewissen Intervalen (individuell für jeden Thread) wiederholt?

Wenn das soweit richtig ist, würde ich noch nicht sehen, wozu du die ganze Methode synchronisierst. Das holen eines Wertes in einem Thread ist eigentlich nichts was du sperren brauchst. Du kannst diesen Wert in einer lokalen Variable des Threads speichern. Nun kommt es nur noch zur Anzeige. Kann ein Wert X von mehr als einem Thread geholt werden, sollte natürlich die Anzeige synchronisiert werden (hier kannst du dann auf ein gemeinsames Objekt sperren). Nur bei der Anzeige könnte es dann zu einem konkurrierenden Zugriff kommen.
Gilt natürlich auch nur, wenn der Wert X an mehr als einer Stelle angezeigt werden soll. Ansonsten sehe ich auch dort eigentlich keine Probleme.

Gruß Der Unwissende
 

byte

Top Contributor
Wenn sich die GUI eh bloß alle x Zeiteinheiten aktualisieren soll, brauchst das doch nicht (auf der Java Seite) Multithreaded zu machen. Sehe da keine Vorteile gegenüber einer sequentiellen Lösung.
 
Also wenn ich es richtig verstanden habe, sind die Update-Zeiten der einzelnen Werte doch unterschiedlich. Das lässt sich imho durch Threads leichter implementieren und falls die Werte auch geloggt werden (oder später um diese Funktionalität erweitert), dann ist es so auch einfacher dies nicht-sequentiell zu machen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Synchronized Probleme Allgemeine Java-Themen 7
D ReentrantLock oder Synchronized ? Allgemeine Java-Themen 3
B Threads synchronized Allgemeine Java-Themen 3
OnDemand Threads und synchronized Allgemeine Java-Themen 9
N Best Practice Semi-Synchronized Zugriff Allgemeine Java-Themen 0
E Verständnisfrage zu synchronized-Blöcken Allgemeine Java-Themen 3
J yield() Aufruf in einer synchronized-Methode Allgemeine Java-Themen 13
A Frage zu Synchronized Allgemeine Java-Themen 5
R Synchronized - auf welchem Objekt Allgemeine Java-Themen 16
R synchronized methode rekursiv aufrufen Allgemeine Java-Themen 5
P synchronized Allgemeine Java-Themen 4
S komplexe synchronized bedingungen Allgemeine Java-Themen 6
G synchronized Allgemeine Java-Themen 7
J Threads und synchronized Allgemeine Java-Themen 18
hdi synchronized & volatile Allgemeine Java-Themen 10
G zwei mal synchronized Allgemeine Java-Themen 5
J synchronized block mit this und wait() Allgemeine Java-Themen 5
M Verständnis "synchronized" Allgemeine Java-Themen 4
T Thread synchronized Allgemeine Java-Themen 5
Kr0e Synchronized Allgemeine Java-Themen 4
K synchronized und notify / notifyAll Allgemeine Java-Themen 8
G synchronized-Sclüsselwort: welche Reihenfolge zum Betreten? Allgemeine Java-Themen 6
R synchronized "gegen sich selbst" Allgemeine Java-Themen 5
R ConcurrentModificationException trotz synchronized? Allgemeine Java-Themen 12
R Thread-Problem, und synchronized bringt nix Allgemeine Java-Themen 4
J synchronized (bitte beantworten, urgent! danke) Allgemeine Java-Themen 11
H Ein synchronized Block ausreichend? Allgemeine Java-Themen 6
G synchronized + threads Allgemeine Java-Themen 12
A deadlocks bei synchronized Allgemeine Java-Themen 3
K vector, synchronized und mehrere methoden Allgemeine Java-Themen 3
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Allgemeine Java-Themen 7
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6
H Methoden Methode 'updateItem' der Klasse 'TreeCell' Allgemeine Java-Themen 3
B Animierte Klasse schreiben - Wie? Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben