läuft der thread eigentlich weiter?

Status
Nicht offen für weitere Antworten.

noobster

Aktives Mitglied
hi blöde frage weil ich dazu nichts gefunden habe,

ich bastle an einem socketserver,da es hin und wieder zu Problemen kam wenn der client geschlossen wurde ohne den stream zu closen.

Ich hab mich inzwischen etwas in die exceptions reingearbeitet und es nach mehreren versuchen soweit optimiert das der multithreaded socketserver schön weiterläuft anstatt sich kurzweilig aufzuhängen und anstelle dessen mit catch und einer Exception sowie
Code:
in.close();
out.close();

den BufferReader und den PrintWriter schliesst,

was mir jetzt nicht klar ist, ob der thread jetzt dadurch auch beendet ist oder weiterläuft?
sorry für meine unwissenheit
:oops:
 

byte

Top Contributor
Der Task ist beendet sobald die run() des Runnables beendet ist. Am besten verwendet man Executor zum Verwalten der Threads - dann kümmert sich Java automatisch um die Threads, Java SE5 vorausgesetzt.
 

noobster

Aktives Mitglied
hey Danke, ich habs zwar jetzt schon mit

Thread.currentThread().stop();
threadDeath;

gemacht weil er auf ein interrupt nicht reagiert hat aber ich werd mir das mit dem executer auf jedenfall durchlesen:D und ggf umändern, will mir nicht wie früher bei anderen sachen erstmal nur die einfachen dinge aneigenen um nachher wieder alles "um"lernen zu müssen, nur weil man schneller erfolge hatte:)
 

byte

Top Contributor
Die API hat dahingehend sogar ein Beispiel für Serversockets parat, sehe ich grade:

Code:
 class NetworkService {
    private final ServerSocket serverSocket;
    private final ExecutorService pool;

    public NetworkService(int port, int poolSize) throws IOException {
      serverSocket = new ServerSocket(port);
      pool = Executors.newFixedThreadPool(poolSize);
    }
 
    public void serve() {
      try {
        for (;;) {
          pool.execute(new Handler(serverSocket.accept()));
        }
      } catch (IOException ex) {
        pool.shutdown();
      }
    }
  }

  class Handler implements Runnable {
    private final Socket socket;
    Handler(Socket socket) { this.socket = socket; }
    public void run() {
      // read and service request
    }
 }

http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ExecutorService.html
 

noobster

Aktives Mitglied
hey nochmal danke, das konstrukt kenne ich aus ActionScript als eventhandler für listener :) ,

das
Code:
newFixedThreadPool
bedeuted aber das ich nur eine festgelegte anzahl an threads zur verfügung stehen habe oder?
Hat das in meiner anwendung einen sinn ausser evtl der beschränkung der "concurrent users"?

könnte ich anstelle dessen nicht

Code:
newCachedThreadPool

nehmen, oder spricht etwas dagegen?

Gruss Sascha :)

ps:
Du weisst immer soviel , wenn ich daten an die socket sende...

Code:
else {
           out.println(line + "_Ausgabe an Client\n\0");
           System.out.println("___>1");
         textArea.append(line);
         System.out.println("___>2");
        }

die ausgabe an den client erfolgt sofort
das system out ___1 kommt unterschiedlich schnell mal sofort mal nach 5 sekunden mal nach noch längerer zeit
das der text dann schlussendlich in der textarea ankommt kann 20 sekunden dauern oder es geschieht erst nachdem ich den client geschlossen habe , ich habe in allen try und catch geschichten eine ausgabe für die console aber es wird anscheinend nichts anderes durchlaufen.

das ganze ist nur bei der zweiten nachricht die ich sende so

die erste ist ein String "saveFile" der wird automatisch vom client gesendet hatte damals eine testfunktion, nunja nun habe ich eine textarea flashclient eingebaut und sende den string zur socket, nur halt bei der ersten eingabe im textfeld (textarea) hab ich besagtes problem, komischerweise kommen an der socket anführende "%0A%0D" (url encoded) an welche ich entferne, kanns daran liegen?
 

byte

Top Contributor
Wenn Du die maximale Anzahl Threads nicht beschränken willst, dann kannst Du genauso gut einen CachedThreadPool verwenden, das ist vollkommen korrekt. Du kannst aber unter Umständen Performanceprobleme kriegen, wenn zuviele Threads geöffnet werden. Aber generell kann man erstmal so testen und bei Bedarf dann später eine Obergrenze einbauen.

Mit Sockets kenne ich mich sonst nicht großartig aus, sry.
 

noobster

Aktives Mitglied
byto hat gesagt.:
Mit Sockets kenne ich mich sonst nicht großartig aus, sry.

auch wenn dem so sein sollte einen riesigen dank schonmal für deine Antworten, die haben mirwirklich sehr weiter geholfen auch diese URLEncoder geschichte aus meinem source hab ich von dir aus einem anderen Beitrag hab mich fast totgesucht was es vergleichbares in java gibt, damit filtere ich unerwünschte zeichen die beim senden endstehen (weiss der Geier wieso), wie du siehst hast du mir schon sehr geholfen ;)

Ich werd nun mal versuchen alles nach zu vollziehen und mal schauen was ich so übers Java debugging finde.
Ich will wissen was das Ding macht während es nix macht :)

Gruss Sascha
 

noobster

Aktives Mitglied
hey cool, danke...


das Future ist genau das was ich brauche.

wann wird der bufferedReader eigentlich geleert, wenn er voll ist, was wenn grössere datenmengen ankommen??
ich hab zumindest hier:

http://java.sun.com/j2se/1.5.0/docs/api/java/io/BufferedReader.html

leider nichts dazu gefunden

btw. ich frage weil ich future nutzen wollte um in einem thread die zeichen mit read()aus einem BufferedReader auszulesen und in einem beiläufigen task den spass abzuarbeiten, nun die frage, globale variable->String oder array in den geschrieben wird und aus dem gelesen wird, sozusagen als "Stack".

oder kann ich den BufferedReader auch zweimal auslesen, ich las da was von einer methode "mark()" hab aber nix gefunden wozu man diese sinniger weise nutzen könnte , weil ich fand zwar ein sprungkomando "skip()" aber keinen um zu lesen WO der string markiert ist?

Gruss Sascha
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
O Threads Ein Thread läuft exakt einmal Java Basics - Anfänger-Themen 4
A Jlayer: Wie sound stoppen der in einem Thread läuft Java Basics - Anfänger-Themen 7
C Thread läuft und läuft, trotz interrupt() Java Basics - Anfänger-Themen 9
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
V Anfängerfrage: HelloWorld läuft nicht Java Basics - Anfänger-Themen 3
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14
D Erste Schritte Java läuft nicht Java Basics - Anfänger-Themen 33
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
S Programm läuft nicht weiter, wie Code wiederholen? Java Basics - Anfänger-Themen 2
C Threads SwingWorker läuft trotz cancel weiter Java Basics - Anfänger-Themen 22
D Programm läuft plötzlich nicht weiter Java Basics - Anfänger-Themen 12
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
M Simpler Algorithmus läuft extrem langsam. Java Basics - Anfänger-Themen 3
K Erste Schritte Netbeans Programm läuft nicht Java Basics - Anfänger-Themen 23
J Dekrement läuft offenbar falsch Java Basics - Anfänger-Themen 6
P Methoden Exception läuft endlos! Java Basics - Anfänger-Themen 7
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
D 2d Array läuft nicht rund. Java Basics - Anfänger-Themen 7
F jabva 7.21 läuft nicht auf windows server 2012? Java Basics - Anfänger-Themen 9
T Test läuft schief Java Basics - Anfänger-Themen 3
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
C Schleife läuft unendlich Java Basics - Anfänger-Themen 2
H Umgebungsvariable In DOS-Box läuft die fehlerfreie Class-Datei nicht. Java Basics - Anfänger-Themen 5
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
K Runnable oder Keyadapter läuft falsch Java Basics - Anfänger-Themen 4
N .jar läuft nicht unter Windows 7 Starter Java Basics - Anfänger-Themen 4
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
A JFrame läuft ewig? Java Basics - Anfänger-Themen 2
S Konsole schließen, nachdem Jar läuft Java Basics - Anfänger-Themen 5
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
B Eingabeüberprüfung läuft nicht wie ich das will... Java Basics - Anfänger-Themen 2
K While-Schleife läuft nicht durch Java Basics - Anfänger-Themen 12
F Schleife läuft zu lang Java Basics - Anfänger-Themen 6
P Threads Wann läuft es parallel ab ? Java Basics - Anfänger-Themen 4
M Programm läuft nicht überall Java Basics - Anfänger-Themen 9
T Programm läuft nicht mehr... Java Basics - Anfänger-Themen 3
F Prüfen ob timer läuft Java Basics - Anfänger-Themen 6
T Erste Schritte Speicher läuft voll, Diashow, Images Java Basics - Anfänger-Themen 7
F sound nur abspielen, wenn er nicht läuft Java Basics - Anfänger-Themen 6
Y Standardprogramm läuft nicht - ppt schreiben Java Basics - Anfänger-Themen 4
D Interpreter-Fehler JavaApplet läuft in der IDE aber nicht im HTML Dokument Java Basics - Anfänger-Themen 9
VfL_Freak Applikation läuft nicht unter Windows7 "platform not supported" Java Basics - Anfänger-Themen 15
C Überprüfen, ob Timer läuft Java Basics - Anfänger-Themen 3
P simples Program läuft nicht ;? Java Basics - Anfänger-Themen 9
S jProgressBar läuft nicht! Java Basics - Anfänger-Themen 13
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
B Programm läuft mit 100% CPU-Last Java Basics - Anfänger-Themen 6
E Projekt fast fertig, nur es läuft nicht ;) Java Basics - Anfänger-Themen 7
R .jar läuft nicht unter Linux Java Basics - Anfänger-Themen 11
R Jar Datei läuft auf neuem Rechner nicht mehr Java Basics - Anfänger-Themen 15
Z Applet mit Mandelbrot und Juliam. läuft nicht rund Java Basics - Anfänger-Themen 6
P Java Programm läuft nicht auf MAC Java Basics - Anfänger-Themen 7
J Programm läuft in Netbeans, aber nicht in der Konsole Java Basics - Anfänger-Themen 6
L Programm läuft nicht! Warum? Java Basics - Anfänger-Themen 5
G If-Schleife läuft ohne erfüllte Bedingung Java Basics - Anfänger-Themen 13
-horn- Was passiert, wenn Zähler über Integer Max läuft? Java Basics - Anfänger-Themen 9
H Split läuft nicht wie ich will Java Basics - Anfänger-Themen 4
N Brauche dringende Hilfe Java Aplett läuft nicht! Java Basics - Anfänger-Themen 3
G Mittels Runtime prüfen ob ein Programm läuft? Java Basics - Anfänger-Themen 18
A Netbeans unter Windows/Jar läuft nicht auf Mac Java Basics - Anfänger-Themen 7
N FileClassLoader läuft nicht in Tomcat Java Basics - Anfänger-Themen 5
G Was bracuht man, damit Java läuft? Java Basics - Anfänger-Themen 6
G Eine HP mit Java läuft nicht Java Basics - Anfänger-Themen 4
B Programm läuft.aber objektorientiert genug? :( Java Basics - Anfänger-Themen 9
S classe unter windows kompiliert läuft nicht unter linux? Java Basics - Anfänger-Themen 8
G jar läuft nur in eingabeaufforderung Java Basics - Anfänger-Themen 12
P Warum läuft das nicht? Java Basics - Anfänger-Themen 6
L [gelöst] Einfache Aufgabe, läuft aber nicht. Java Basics - Anfänger-Themen 8
S "einfache Klassengeschichten" keine Fehler, läuft Java Basics - Anfänger-Themen 2
G Gauss Applet läuft nicht Java Basics - Anfänger-Themen 9
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
K eclipse läuft nich Java Basics - Anfänger-Themen 3
M Java läuft nicht Java Basics - Anfänger-Themen 5
I Keine zwei Objekte im Fenster möglich? Was läuft falsch? Java Basics - Anfänger-Themen 5
M Lottoprog. läuft nicht Java Basics - Anfänger-Themen 6
C Applikation läuft nur, wenn sie aus Netbeans gestartet wird Java Basics - Anfänger-Themen 6
M Datenbankabfrage läuft nicht Java Basics - Anfänger-Themen 28
P jbuilder-Programm- Wie läuft es ohne jbuilder. Java Basics - Anfänger-Themen 3
B Choice läuft Amok Java Basics - Anfänger-Themen 10
D Warum läuft dieses Programm so langsam? Java Basics - Anfänger-Themen 5
A For Schleife läuft nicht :( Java Basics - Anfänger-Themen 12
E folgendes kleines Prog läuft net Java Basics - Anfänger-Themen 10
P Programm läuft nur in der IDE Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben