Übergabe einer ArrayList an mehrere Threads

Status
Nicht offen für weitere Antworten.

JayJay

Neues Mitglied
Guten Morgen,

ich habe ein Problem bezüglich zweier Threads, denen eine ArrayList übergeben wird. Der eine soll die Liste füllen und der andere unabhängig davon auf die Inhalte der Liste zugreifen. Leider kann ich mit dem 2. Thread, der auf die Liste zugreifen soll, dies nicht tun, da die ArrayList in diesem immer leer ist. Mache ich irgendetwas mit den Referenzen falsch?

Hier mein Code (Ausschnitt):

Diese Klasse ruft die beiden Threads auf:
[HIGHLIGHT="Java"]ArrayList<BeanDB> lokaleListEineBeanDB = new ArrayList<BeanDB>();

Thread thread1 = new Thread(new ThreadServerAbgleich(lokaleListEineBeanDB));
thread1.start();

Thread thread2 = new Thread(new ThreadLokaleDatenverarbeitung(lokaleListEineBeanDB));
thread2.start();[/HIGHLIGHT]

In diesem Thread wird die Liste befüllt (fuktioniert auch):

[HIGHLIGHT="Java"]public class ThreadServerAbgleich extends Thread{

public ArrayList<BeanDB> lokaleListEineBeanDB;
private final static Logger log = Logger.getLogger(ThreadServerAbgleich.class.getName());

public ThreadServerAbgleich(ArrayList<BeanDB> lokaleListEineBeanDB) {
this.lokaleListEineBeanDB = lokaleListEineBeanDB;
}

public void run() {
log.info("Thread 1 gestartet");

while ( ! isInterrupted()) {

vergleicheServerLokalDB(ladeDB(true), ladeDB(false));

System.out.println(lokaleListEineBeanDB.toString());

try {
Thread.sleep(1000);
} catch (Exception e) {
interrupt();
}

}

}

[...][/HIGHLIGHT]

Hier soll jetzt wieder auf lokaleListEineBeanDB zugegriffen werden:

[HIGHLIGHT="Java"]public ArrayList<BeanDB> lokaleListEineBeanDB;

private final static Logger log = Logger.getLogger(ThreadLokaleDatenverarbeitung.class.getName());

public ThreadLokaleDatenverarbeitung(ArrayList<BeanDB> lokaleListEineBeanDB) {
this.lokaleListEineBeanDB = lokaleListEineBeanDB;

}

public void run() {
log.info("Thread 2 gestartet");

while ( ! isInterrupted()) {

//vergleicheZeiten();
System.out.println(lokaleListEineBeanDB.toString());

try {
Thread.sleep(1200);
} catch (Exception e) {
interrupt();
}

}
}[/HIGHLIGHT]

Die Threads sollen später unabhängig voneinander in längeren Abständen (> 1 min) laufen. Ich hoffe ihr könnt mir in irgendeiner Form helfen. Ich wäre euch echt dankbar!

JayJay
 

Zed

Bekanntes Mitglied
Sagt dir das Schlüsselwort synchronized etwas? Wenn nicht dann informier dich mal drüber.

evtl. könnte es schon reichen wenn du einen Vector statt einer ArrayList verwendest.
 

JayJay

Neues Mitglied
Ja, wahrscheinlich kommt es einem Art "Producer-Consumer-Pattern" relativ nahe.

Der Vector brachte auch keine Lösung des Problems. Wenn ich mit dem einen Thread nur lese, müsste ich doch theoretisch nichts synchronisieren, da es in keinem Fall zu einem kritischen Zustand kommen kann, oder?

Mein Problem ist glaube ich einfach die Referenz. Wie kann ich von dem 2. Thread auf ein Objekt (die ArrayList) des 1. Threads zugreifen, welches beiden vorher übergeben wurde?

Ich denke, dass ich die beiden Threads zusammenführen werde. Das ist zumindest eine Lösung, die mich mit dem Programm zum Ziel führt.

Danke!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
R Methoden Übergabe von einer Methodenvariable Java Basics - Anfänger-Themen 3
fLooojava Probleme bei der Übergabe einer Variable Java Basics - Anfänger-Themen 14
K Übergabe einer im EventListener definierte variablen Java Basics - Anfänger-Themen 2
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J Übergabe von Parametern an andere Methoden Java Basics - Anfänger-Themen 5
M Übergabe von Werten Java Basics - Anfänger-Themen 10
arjoopy Kapselung Übergabe von Objekten aus ArrayList Java Basics - Anfänger-Themen 4
C Erste Schritte Übergabe von Klassen Java Basics - Anfänger-Themen 2
C Methoden Objekte und Methode und Übergabe Java Basics - Anfänger-Themen 4
O Übergabe in eine andere Klasse Java Basics - Anfänger-Themen 3
M Übergabe / Rückgabe Java Basics - Anfänger-Themen 6
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
T Problem bei Übergabe von Variablen Java Basics - Anfänger-Themen 1
R Vererbung Übergabe von Variablen der Superklasse an Subklasse mit "extends" Java Basics - Anfänger-Themen 5
S OOP Übergabe eines Objektes? Java Basics - Anfänger-Themen 1
fLooojava OOP Übergabe/Output in Textfield Java Basics - Anfänger-Themen 4
U Übergabe von Objekten Java Basics - Anfänger-Themen 0
J ArrayList toString() Übergabe Fehler Java Basics - Anfänger-Themen 2
S Übergabe Java Basics - Anfänger-Themen 14
S Klassen Array: Übergabe von Klasse zur Main Java Basics - Anfänger-Themen 8
A NullPointerException bei Übergabe eines Array Java Basics - Anfänger-Themen 8
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
D Klassen Problem - Übergabe an Konstruktor von Superklasse Java Basics - Anfänger-Themen 2
D Objekt Übergabe Java Basics - Anfänger-Themen 12
M Array Übergabe Java Basics - Anfänger-Themen 17
W Übergabe Stringzeilen von serieller Schnittstelle in andere Klasse Java Basics - Anfänger-Themen 3
B Übergabe Dateiname (String) an andere Klasse Java Basics - Anfänger-Themen 4
P Methoden Übergabe von Werten Java Basics - Anfänger-Themen 7
F Variablen Übergabe von eingelesenen Variablen in neue Klasse Java Basics - Anfänger-Themen 15
M Fragen zu Methoden (void/return), Übergabe von Parametern Java Basics - Anfänger-Themen 3
A Übergabe von Variablen zu Paintmethode Java Basics - Anfänger-Themen 2
N Array Übergabe Java Basics - Anfänger-Themen 9
L Klassen Parameter Übergabe Java Basics - Anfänger-Themen 12
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
O Übergabe von Variablen Java Basics - Anfänger-Themen 9
Darth Simple Übergabe eines Strings an eine Methode Java Basics - Anfänger-Themen 3
A Frage zur Übergabe von Strings Java Basics - Anfänger-Themen 9
N Übergabe problem Java Basics - Anfänger-Themen 6
M Übergabe von VM Argumenten Java Basics - Anfänger-Themen 4
E Übergabe von werten aus einem JDialog Java Basics - Anfänger-Themen 4
J Übergabe eines Arrays als Parameter Java Basics - Anfänger-Themen 2
S Übergabe von Frame-Objekt - kritisch? Java Basics - Anfänger-Themen 7
L JTabbedPane, richtige Übergabe von Tabs Java Basics - Anfänger-Themen 18
Z BigInteger Methoden und deren Übergabe Java Basics - Anfänger-Themen 3
M Übergabe von Variablen in eine Klasse Java Basics - Anfänger-Themen 13
G Wieso ist eine String-Übergabe keine by-reference-Zuweisung? Java Basics - Anfänger-Themen 7
M Problem bei der Übergabe von Werten Java Basics - Anfänger-Themen 7
G Übergabe von Parametern an JSP Java Basics - Anfänger-Themen 3
S Veränderung von Protected Daten durch Übergabe? Java Basics - Anfänger-Themen 3
K Übergabe der Variable für Farbe Java Basics - Anfänger-Themen 6
G List<.> nach Übergabe vergleichen? Java Basics - Anfänger-Themen 3
G Übergabe Variablen von Servlet zu JSP? Java Basics - Anfänger-Themen 4
R Beiß mir die Zähne aus an der Request-Parameter-Übergabe! Java Basics - Anfänger-Themen 10
lin Übergabe an JPanel-Klasse Java Basics - Anfänger-Themen 3
S NullPointerException bei Array-Übergabe Java Basics - Anfänger-Themen 3
D Übergabe von Variablen Java Basics - Anfänger-Themen 11
W Variabeln Übergabe Java Basics - Anfänger-Themen 14
F Großes Problem: Vector-Übergabe Java Basics - Anfänger-Themen 7
F Übergabe Vaterframe mit this und Fehlermeldung. Java Basics - Anfänger-Themen 2
D Fragen zu Methoden und Übergabe von Werten Java Basics - Anfänger-Themen 4
G Übergabe von Variablenwerten zwischen Methoden Java Basics - Anfänger-Themen 4
D Problem bei Übergabe von Werten an eine Methode Java Basics - Anfänger-Themen 2
H Übergabe eines Wertes an eine Bean --> Bean leer Java Basics - Anfänger-Themen 6
T Array-Übergabe Java Basics - Anfänger-Themen 7
M Windows Pfad-Übergabe.. Java Basics - Anfänger-Themen 6
S String mit Konstruktor (per Übergabe) initialisieren Java Basics - Anfänger-Themen 10
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
M Zufallszahl generieren mit einer linken und rechten Grenze Java Basics - Anfänger-Themen 3
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben