Wie synchronisiere ich eine for-Schleife

berserkerdq2

Bekanntes Mitglied
Hi, ich habe eine for-schleife die eine Liste durchläuft, diese Lsite enthält Objekte.

Nun habe ich eine Aufgbenstellung in der steht:

"Synchronisier den Durchlauf der Liste, mit den Auto Objekten auf dem Listenobjekt. Dies muss getan werden, da die Möglichkeit besteht, dass parallel ein anderer Thread Elemente in die Liste einfügen könnte"

Was ich nicht kapiere, ich habe selber noch keinen Thread erstellt.

Nun soll ich diese liste jedoch synchronisieren, was genau würdet ihr tun?
 

berserkerdq2

Bekanntes Mitglied

KonradN

Super-Moderator
Mitarbeiter
Eine ganz eindringliche Bitte:
Probiere Dinge aus! Spiele damit! Es wird doch garantiert auch sowas wie eine Prüfung auf Dich zu kommen. Oder dürft Ihr Prüfungen mit Computer / Internet schreiben, so dass die Aufgaben hier im Forum gepostet und beantwortet werden können?

an sich kenne ich die Sachen schon. Wirklich geholfen haben die mir nicht,
Irgend welche Theorie zu lesen wird Dir nicht helfen. Denn ganz offensichtlich verstehst Du das, was geschrieben wurde, schlicht nicht. (Das ist kein Vorwurf - es ist vollkommen normal, dass man auch praktische Erfahrungen sammeln muss um etwas richtig zu verstehen!)

Der Vorwurf ist also schlicht, dass Du Dich ganz offensichtlich auch weiterhin nicht an den Rechner gesetzt hast um die Dinge, über die Du etwas gelesen hast, zu vertiefen und auszuprobieren.

Was ich nicht kapiere, ich habe selber noch keinen Thread erstellt.
Ja, ich kapiere es auch nicht: Wieso bauen Hersteller in Autos Airbags? Mein Auto braucht keine Airbags - ich habe schließlich noch keinen Unfall! Das ist hier etwas die Aussage und das zeigt doch, dass das generelle Verständnis fehlt.

Die Airbags baut man ein, weil ja Unfälle passieren können. Und die Praxis zeigt: Unfälle passieren regelmäßig, wenn mehrere Autos über die gleiche Straße fahren (können). Und dann hast Du ein Auto mit Airbags und es ist egal, ob Du alleine auf der Straße bist oder ob da auch andere Autos sind.

Genau so ist es auch hier: Du sollst Synchronisieren, also Probleme ausschließen, die im Falle eines gleichzeitigen Zugriffs passieren könnten. (So wie die Airbags schwere Verletzungen verhindern sollen). Ist das Szenario etwas verständlich? Wenn Du das Szenario verstanden hast, dann spiel etwas damit! Lern Java kennen! Lern die Klassen des Frameworks kennen! Spiel damit um zu lernen, was man damit alles machen kann! Das kann Dir hier keiner im Forum abnehmen

Ich kann Dir nur ganz eindringlich raten, denn ich bin mir sehr sicher, dass es Dir ganz massiv auf die Füße fallen wird. Und Du musst zeitnah anfangen! (Ich sehe schon den Post: "Ich schreibe in x Monaten / Wochen / Tagen die Prüfung - wie kann ich mich vorbereiten"). Du studierst habe ich verstanden? Da ist das und genau das Deine Aufgabe! Du musst Dir selbst Dinge beibringen.

Aber ich fürchte, dass dies zu nichts führt, daher bin ich einfach mal aus dem Thread raus ...
 

berserkerdq2

Bekanntes Mitglied
Eine ganz eindringliche Bitte:
Probiere Dinge aus! Spiele damit! Es wird doch garantiert auch sowas wie eine Prüfung auf Dich zu kommen. Oder dürft Ihr Prüfungen mit Computer / Internet schreiben, so dass die Aufgaben hier im Forum gepostet und beantwortet werden können?


Irgend welche Theorie zu lesen wird Dir nicht helfen. Denn ganz offensichtlich verstehst Du das, was geschrieben wurde, schlicht nicht. (Das ist kein Vorwurf - es ist vollkommen normal, dass man auch praktische Erfahrungen sammeln muss um etwas richtig zu verstehen!)

Der Vorwurf ist also schlicht, dass Du Dich ganz offensichtlich auch weiterhin nicht an den Rechner gesetzt hast um die Dinge, über die Du etwas gelesen hast, zu vertiefen und auszuprobieren.


Ja, ich kapiere es auch nicht: Wieso bauen Hersteller in Autos Airbags? Mein Auto braucht keine Airbags - ich habe schließlich noch keinen Unfall! Das ist hier etwas die Aussage und das zeigt doch, dass das generelle Verständnis fehlt.

Die Airbags baut man ein, weil ja Unfälle passieren können. Und die Praxis zeigt: Unfälle passieren regelmäßig, wenn mehrere Autos über die gleiche Straße fahren (können). Und dann hast Du ein Auto mit Airbags und es ist egal, ob Du alleine auf der Straße bist oder ob da auch andere Autos sind.

Genau so ist es auch hier: Du sollst Synchronisieren, also Probleme ausschließen, die im Falle eines gleichzeitigen Zugriffs passieren könnten. (So wie die Airbags schwere Verletzungen verhindern sollen). Ist das Szenario etwas verständlich? Wenn Du das Szenario verstanden hast, dann spiel etwas damit! Lern Java kennen! Lern die Klassen des Frameworks kennen! Spiel damit um zu lernen, was man damit alles machen kann! Das kann Dir hier keiner im Forum abnehmen

Ich kann Dir nur ganz eindringlich raten, denn ich bin mir sehr sicher, dass es Dir ganz massiv auf die Füße fallen wird. Und Du musst zeitnah anfangen! (Ich sehe schon den Post: "Ich schreibe in x Monaten / Wochen / Tagen die Prüfung - wie kann ich mich vorbereiten"). Du studierst habe ich verstanden? Da ist das und genau das Deine Aufgabe! Du musst Dir selbst Dinge beibringen.

Aber ich fürchte, dass dies zu nichts führt, daher bin ich einfach mal aus dem Thread raus ...
Das Problem ist, ich kanns gar nicht ausprobieren bei der Methode.
Da erst 6 Aufgaben später das relevant wird und ich es erst testen kann, wenn ich aufgabe 2-5 gemacht habe.

An sich die Theorie wäre ja:

synchronized(ListenName){
for-Schleife, die die Liste durchgeht
}

Ich weiß nur net, ob das konsistent ist. Nicht, dass mir am Ende bei Aufgabe 6 der ganze Schuppen ums Ohr haut.
 

KonradN

Super-Moderator
Mitarbeiter
Da erst 6 Aufgaben später das relevant wird und ich es erst testen kann, wenn ich aufgabe 2-5 gemacht habe.
Was für ein Unsinn! Wir haben keine Deiner Aufgaben bekommen und konnten uns dennoch damit beschäftigen. Nichts und niemand hindert Dich daran, dir selbst Dinge zu erarbeiten. Und die Aufgabe hast Du ja genannt:
"Synchronisier den Durchlauf der Liste, mit den Auto Objekten auf dem Listenobjekt. Dies muss getan werden, da die Möglichkeit besteht, dass parallel ein anderer Thread Elemente in die Liste einfügen könnte"
Damit hast Du jetzt etwas, womit Du Dich beschäftigen kannst. Das sind alles Grundlagen. Das sind keine hoch komplexen Studieninhalte, wo man auf den Prof warten muss, bis er diese Geheimnisse teilt und erläutert. Das sind Dinge, die solltest Du in einem Programm hin bekommen. Du hattest doch schon erste Dinge mit Threads. (Das waren diese Dinger, wo Du immer mit Unwissen glänzt aber dennoch alles, was man Dir sagt schon kennst....)

Sorry, wenn ich etwas deprimiert and aggro klinge. Aber ich sehe das alles als Zeitverschwendung. Du willst ja nichts lernen sondern nur irgendwelche Lösungen. Zumindest ist das der Eindruck, der sich mir aufdrängt und weshalb ich ja eigentlich schon längst auf Deinen Threads raus wollte ...
 

berserkerdq2

Bekanntes Mitglied
Was für ein Unsinn! Wir haben keine Deiner Aufgaben bekommen und konnten uns dennoch damit beschäftigen. Nichts und niemand hindert Dich daran, dir selbst Dinge zu erarbeiten. Und die Aufgabe hast Du ja genannt:

Damit hast Du jetzt etwas, womit Du Dich beschäftigen kannst. Das sind alles Grundlagen. Das sind keine hoch komplexen Studieninhalte, wo man auf den Prof warten muss, bis er diese Geheimnisse teilt und erläutert. Das sind Dinge, die solltest Du in einem Programm hin bekommen. Du hattest doch schon erste Dinge mit Threads. (Das waren diese Dinger, wo Du immer mit Unwissen glänzt aber dennoch alles, was man Dir sagt schon kennst....)

Sorry, wenn ich etwas deprimiert and aggro klinge. Aber ich sehe das alles als Zeitverschwendung. Du willst ja nichts lernen sondern nur irgendwelche Lösungen. Zumindest ist das der Eindruck, der sich mir aufdrängt und weshalb ich ja eigentlich schon längst auf Deinen Threads raus wollte ...
Also ich weiß, man glaubt mir vielleicht nicht, aber habe keine Ahnung wie ich das testen soll. Also die Theorie habe ich jetzt drinnen, dachte mir gut mache synchronized und das sollte eigentlich passen, aber bin mir nur unsiocher gewesen
 

temi

Top Contributor
Also ich weiß, man glaubt mir vielleicht nicht, aber habe keine Ahnung wie ich das testen soll.
Also, wenn ich etwas ausprobieren möchte, dann entferne ich mich vom ursprünglichen Problem/der ursprünglichen Aufgabe und wechsle in ein simples Kosolenprogramm, wo ich mir einen passenden "Testaufbau" mache. Da kannst du dann spielen, z. B. mit informativen Konsolenausgaben.

In deinem Fall musst du halt was basteln, wo zwei Threads parallel auf eine Liste zugreifen, du musst versuchen den Fehler zu provozieren. Also z. B. erst mal ohne Synchronisation, bis ein Fehler passiert und danach mit Synchronisation, ob der Fehler nicht mehr passiert.
 

Jw456

Top Contributor
Teste doch mal was passiert, wenn du von zwei Threads aus auf diese Methode zugreifst und was steht am Ente in der Liste steht.
Ist dann immer A und B geordnet oder nicht?

Wenn es nicht so ist was kannst du machen das es so wird?

Java:
List<String> list = new ArrayList<>();
...
public  void writeList(String st) {
        try {
            list.add(st +"A");
            Thread.sleep(1);
            list.add(st +"B");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
dokan wie kann ich eine funktionierende Suchleiste erstellen Allgemeine Java-Themen 1
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
berserkerdq2 Gibt es eine saubere Dokumentation von Jfoenix? Allgemeine Java-Themen 1
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
T Eine Frage des Designs Allgemeine Java-Themen 2
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
H Eine Linie verkürzen Allgemeine Java-Themen 5
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
F Kennt ihr eine Library um 2 HTML Seiten zu diffen? Allgemeine Java-Themen 8
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
Tobero Wie kann man eine Poisson Disc Sampler? Allgemeine Java-Themen 7
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
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
N Eine stelle der Fibonacci-Zahlenfolge ausgeben. Allgemeine Java-Themen 4
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
I Eine Anwendung so gut wie möglich beschützen Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Login in eine Webseite mit Java Allgemeine Java-Themen 3
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
M Schlüsselworte Was ist eine Java Spezifikation + JSR? Allgemeine Java-Themen 11
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
E RMI FWH: RMI- Wie erstelle ich stubs dynamisch, bzw. unterdrücke eine Statisch-Warnung? Allgemeine Java-Themen 0
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
A Best Practice Java - eine Art Plugin-Struktur Allgemeine Java-Themen 3
S wie rufe ich mit .jar datei eine .bat auf? Allgemeine Java-Themen 15
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
E Methoden Hat jemand eine gute Lösung? Allgemeine Java-Themen 5
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
Tausendsassa Interface Eine Gui von einer anderen schließen lassen Allgemeine Java-Themen 3
S Threads Kann mir jemand helfen eine parallele Hilfsklasse zu implementieren..? Allgemeine Java-Themen 3
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10
P Dezimalzahl in eine Binärzahl umrechnen Allgemeine Java-Themen 12
M Eine static-Methode verlassen Allgemeine Java-Themen 2
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben