Threads linkedlist/multi-thread problem

Erinas

Mitglied
Ok hallo erst mal :)
Ich habe da mal ein kleines Problem und hoffe ihr könnt mir da evtl. weiterhelfen :D

Ich habe ein Server Prog. geschrieben das die Client connections mittels Multi-Threading handlet
alles soweit kein Problem
nun mussten irgendwann die Client-Threads auf serverweite Daten zugreifen, dies habe ich dann
naiv wie ich bin mit einem Core-Thread gelöst in dem die Clients ihren s***** der reihe nach in ne linkedlist stopfen.
Der Core macht nix anderes als:
Java:
public void run() {
		while (running) {
			if (!orderList.isEmpty()) {
				execute(orderList.getFirst(), orderListThreadName.getFirst());
				orderListThreadName.removeFirst();
				orderList.removeFirst();
			}
		}
	}
klappt auch eigentlich...
nur vor kurzem ist mir aufgefallen das
der Core-Thread in unregelmäßigen Abständen abs*****t
mal nach 15 Min. mal nach 6 Stunden
alle 5 Min. bekommt der Core eine Anweisung die er ausführt
aber irgendwann kommt stattdessen ne java.util.NoSuchElementException wenn er getfirst() versucht.

Meine frage nun:
hat einer ne Idee woran das liegen kann
oder geiler noch: hat einer ne bessere Lösung xD?

ach und sorry für Ausdrucksweise und evtl. andere Missetaten
bin leider nicht der Profi unter den hobbycodern xD
 

Gucky

Top Contributor
Wenn kein so ein Element vorhanden ist, wird die Liste leer sein. Da es ein bisschen dauern kann, bis der Fehler auftritt, lass dir mal alle Schritte in ein Log schreiben. Einschließlich der Zustände der Objekte. Also auch die Länge der Liste. Irgendwo leerst du die Liste oder instanziierst sie neu.
 

Erinas

Mitglied
Hm ... war vll keine so dumme Idee
hab das mal getestet und bin auf den Trichter gekommen das
das ein Timing Fehler sein könnte :O

schau das ist die Methode die die Client-Threads nutzen um die Linkedlist zu befüllen
Java:
	public static synchronized void addOrder(String order,String id){
		orderList.add(order);
		orderListThreadName.add(id);
	}
die exeption sagt aber nur getfirst() und Zeile 33 aber nicht welches der getfirsts
Java:
    public void run() {
            while (running) {
                if (!orderList.isEmpty()) {
zeile 33 -->     execute(orderList.getFirst(), orderListThreadName.getFirst());
                    orderListThreadName.removeFirst();
                    orderList.removeFirst();
                }
            }
        }

dachte mir vll liegt es ja daran das zur Laufzeiter der Client-Thread grade die Order hinzugefügt hat aber noch nicht den Thread-Name somit wäre orderListThreadName.getFirst()) das Problem

hab das jetzt mal so abgeändert:
Java:
    public void run() {
            while (running) {
änderung-->     if (!orderList.isEmpty() && !orderListThreadName.isEmpty()) {
                    execute(orderList.getFirst(), orderListThreadName.getFirst());
                    orderListThreadName.removeFirst();
                    orderList.removeFirst();
                }
            }
        }
was meinst du könnte des das Problem gewesen sein ôo?
klingt irgendwie zu einfach... hab das ganze jetzt nochmal gestartet
mach schauen was daraus wird...
 

Gucky

Top Contributor
Naja das Timing? Also wenn kein Client was reingetan hat, dann ist auch nichts drin. :)
Mit deiner Lösung hast du die Exception verhindert aber nicht das Rätsel um die leere Liste gelöst.

Und guck dir mal Stacks und Queues an. Vielleicht sind die was für dich. Ich glaube, eine LinkedList ist hier ein bisschen zu groß. :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Laufzeit LinkedList Allgemeine Java-Themen 9
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
M Delete bei sortierter LinkedList Allgemeine Java-Themen 5
M ArrayList oder LinkedList Allgemeine Java-Themen 10
M verbesserte Laufzeit bei LinkedList Allgemeine Java-Themen 7
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
S LinkedList Error Allgemeine Java-Themen 4
T Menge an Elementen aus einer LinkedList Allgemeine Java-Themen 6
L Java Slick2D stürzt ab- Zu viel auf einmal? (LinkedList) Allgemeine Java-Themen 7
F LinkedList Allgemeine Java-Themen 3
S Wertepaar in LinkedList/PriorityQueue speichern Allgemeine Java-Themen 3
R LinkedList und Threads: Strukturprobleme bez. löschen von Elementen Allgemeine Java-Themen 3
R LinkedList und Threads - welche Methode ist besser? Allgemeine Java-Themen 2
H LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? Allgemeine Java-Themen 9
C Threads Zwei Threads greifen auf LinkedList zu. Allgemeine Java-Themen 12
B Datentypen JMF: Player LinkedList sinnvoll? ca 30 kurze Sounddateien Allgemeine Java-Themen 3
C LinkedList und ArrayList in HashMap Allgemeine Java-Themen 4
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
C Wie kann ich ein LinkedList verbinden ? Allgemeine Java-Themen 4
R Intervall-Implementierung mit selbstgebauter LinkedList Allgemeine Java-Themen 7
A LinkedList Auslesen und Objekt Löschen Allgemeine Java-Themen 4
nabla LinkedList removeRange ineffizient? Allgemeine Java-Themen 4
G extend LinkedList für Matrosenkiller ;-) Allgemeine Java-Themen 9
R ArrayList, LinkedList oder Set Allgemeine Java-Themen 9
Daniel_L LinkedList vom Typ Object-Array? Allgemeine Java-Themen 4
T Problem mit LinkedList Allgemeine Java-Themen 2
D indexOutOfBoundsException bei LinkedList Allgemeine Java-Themen 10
T zirkuläre LinkedList Allgemeine Java-Themen 8
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
N ArrayList oder LinkedList? Allgemeine Java-Themen 15
M Rekursive Ausgabe einer linkedList Allgemeine Java-Themen 8
J LinkedList und Assoziaziotenen Allgemeine Java-Themen 8
F Synchronisation + Vector/ArrayList/LinkedList Allgemeine Java-Themen 7
C LinkedList Fragen Allgemeine Java-Themen 7
H Daten aus LinkedList ausgeben ! Allgemeine Java-Themen 9
H [LinkedList] Sortieren durch MergeSort Allgemeine Java-Themen 3
S Probleme mit LinkedList und Label mit gridbagLayout Allgemeine Java-Themen 2
M IOException bei save und load in LinkedList Allgemeine Java-Themen 4
N Objekte in LinkedList "umsortieren" Allgemeine Java-Themen 4
C LinkedList Exception abfangen Allgemeine Java-Themen 8
Z LinkedList speichern Allgemeine Java-Themen 2
N Element aus LinkedList löschen Allgemeine Java-Themen 2
Z löschen aus Linkedlist Allgemeine Java-Themen 12
G LinkedList sortieren Allgemeine Java-Themen 3
C Collection, LinkedList, Elemente Allgemeine Java-Themen 4
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
M Jdeps-Error durch multi-release Allgemeine Java-Themen 6
Luk10 Multi-Threading mit join() Allgemeine Java-Themen 16
J Swing Ermittlung der Bildschirmauflösung von Multi-Monitor-Systemen Allgemeine Java-Themen 12
M MessageFormat : multi line Allgemeine Java-Themen 10
Q JConsole - CPU Usage Multi-Core Allgemeine Java-Themen 2
T Java Logging API in Multi Threaded API Allgemeine Java-Themen 2
L remote debugging of a multi threaded system Allgemeine Java-Themen 2
G Framework für Multi-Prozessor-Programmierung? Allgemeine Java-Themen 4
G Java Anwendung für Multi-User Allgemeine Java-Themen 2
D Datei Suche: Multi Threaded Allgemeine Java-Themen 8
G Fehlerbereinigung bei Multi Threading Anwedung Allgemeine Java-Themen 2
M Bitte Testen: Mein Multi-File Editor Allgemeine Java-Themen 30
G Vectoren Threads, und Multi Operationen Allgemeine Java-Themen 15
A Synchronisation Datenquelle und Anwendung (Multi-User) Allgemeine Java-Themen 7
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
smarterToby Wie stoppe ich diesen Thread Allgemeine Java-Themen 4
A Thread.sleep Problem Allgemeine Java-Themen 2
J Thread started nur einmal Allgemeine Java-Themen 19
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand Logfile pro User / Thread Allgemeine Java-Themen 7
OnDemand Thread / Service abbrechen Allgemeine Java-Themen 3
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
B Thread.sleep() in EJB Container wie lösen? Allgemeine Java-Themen 11
S Ist das Neuzuweisen von Feldern atomic und damit Thread-Safe? Allgemeine Java-Themen 2
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
Flynn Thread-Problem... Allgemeine Java-Themen 2
G Thread-Programmierung Allgemeine Java-Themen 5
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
mrbig2017 Sleep wird ignoriert und der Thread wartet nicht Allgemeine Java-Themen 1
S Thread beenden Allgemeine Java-Themen 9
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
M Nanosekunden-Pause innerhalb einen Thread-Loops Allgemeine Java-Themen 3
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
K Thread Problem Allgemeine Java-Themen 6
W Thread sleep 30 sekunden - wenn keine Antwort bis dahin neu senden Allgemeine Java-Themen 2
H Thread bleibt stehen bei jar in jar Allgemeine Java-Themen 1
J Threads HTTP Request (Thread) dauert lange - in Android Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
P Threads BufferedImage, Thread Concurrency Allgemeine Java-Themen 1
M Klasse in separaten Thread ausführen.Wie genau? Allgemeine Java-Themen 2
llabusch Thread blockiert Dialog Allgemeine Java-Themen 1
J Thread wait() Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben