blockierenden Prozess stoppen

Status
Nicht offen für weitere Antworten.
S

silke bischof

Gast
Hallo zusammen,

ich habe ein Programm, das aus zwei Threads besteht.
In dem ersten Thread läuft ein UDPServer und in dem Zweiten das Programm, das die empfangen Packete auswertet.

Nun habe ich das Problem, wenn ich das Programm beenden möchte, steht der erste Thread immernoch an dem blockierenden Befehl "datagrammSocket.receive(datagramm)".
Wenn ich die Bedingung der Endlosschleife des ersten Threads auf false setze und noch ein Telegramm empfangen wird, beendet sich mein Programm so wie gewünscht, nur möchte ich nicht bis auf das Empfangen eines Telegramms warten.

Gibt noch eine andere Möglichkeit, als mit System.exit das Programm zubeenden.

Gibt es vielleicht einen Befehl, mit dem ich das Blockieren des receive Befehls aufheben kann???

Danke für die Hilfe

Gruß
Silke
 

comp89

Bekanntes Mitglied
es gibt schon einen anderen befehl, aber der tut das selbe :D
Runtime.getRuntime().exit(0)
 
S

silke bischof

Gast
was es an System.exit auszusetzen gibt...

na ja das programm was ich gerade realisiere, soll später mal in eine jar -datei verpackt werden und andere progs sollen die implementieren, da wäre es schon schöner ,wenn man es auf einen normalen weg beenden könnte...
 
B

bygones

Gast
silke bischof hat gesagt.:
na ja das programm was ich gerade realisiere, soll später mal in eine jar -datei verpackt werden und andere progs sollen die implementieren, da wäre es schon schöner ,wenn man es auf einen normalen weg beenden könnte...
was ? wie soll jemand ein jar implementieren ???
System.exit(0) ist der Befehl zum Beenden eines Javaprogramms...
 
S

silke bischof

Gast
ich kann doch ein paar klasen schreiben, die in eine jar datei verpacken und andere programme importieren diese und greifen auf die klassen zu.. das geht... oder????

und wenn ich da einen thread habe, der sich nur mit system.exit(1) beenden lässt, ich das für mich nicht die feine englisch art... und ich hätte das gerne anderes, wenn es möglich ist... wenn nicht, muss ich damit leben
 
B

bygones

Gast
axo - das mit den Klassen nutzen geht selbstverständlich...

einen Thread kannst du u.a. auch per interrupt() beenden
 
G

Guest

Gast
Hallo,

es ist noch ein bisschen früh heute und ich kann's hier nicht testen, aber hast Du
einfach mal ausprobiert, ob Du den Socket mit close() oder disconnect() dazu bekommst
aus dem receive auszusteigen (ggf. mit einer Exception)?

Gruß,

Karl
 

Icewind

Bekanntes Mitglied
naja mit einem ServerSocket kann man ein timeout setzten wie lange er maximal wartet

also schau mal unter der api nach....
 
S

Silke Bischof

Gast
Danke für den Tipp mit dem cloesd()... jetzt funkst es...
 

Bleiglanz

Gesperrter Benutzer
System.exit(0) ist der Befehl zum Beenden eines Javaprogramms.
und sollte nur in absoluten Ausnahmefällen eingesetzt werden, für fast alle "normalen" Zwecke reicht ein "return", um aus einer Methode auszusteigen.
ich kann doch ein paar klasen schreiben, die in eine jar datei verpacken und andere programme importieren diese und greifen auf die klassen zu.. das geht... oder????
ja, und die "Anwender" dieses Jars wundern sich dann, wenn ihr eigenes GUI-Programm mittendrin -schwupp- verschwindet (oder sich ein Applicationserver einfach so beendet...)
 
B

bygones

Gast
das system.exit(0) bezieht sich auf eine "standalone" gui mit der berühmte ExitAction...

ansonstenn stimm ich natürlich Bleiglanz zu...
 

comp89

Bekanntes Mitglied
echt system.exit(0) ist nicht schön ???:L
ich verwend das mindestens fünf mal in jeder klasse
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
J Warten bis cmd Prozess fertig ist Allgemeine Java-Themen 2
L Prozess automatisch beenden Allgemeine Java-Themen 8
R PIPE Kommunikation mit Prozess blockiert Allgemeine Java-Themen 0
L Java Web Start - generierter Prozess Allgemeine Java-Themen 4
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
A Linux: Native Library mit Rootrechten ohne Prozess mit sudo zu starten Allgemeine Java-Themen 1
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
Thallius Neuen Prozess starten, der auch nach Beedingung des Starter-Prozesses weiterläuft? Allgemeine Java-Themen 5
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
D Grafisches Frontend zu einem Java Prozess erstellen Allgemeine Java-Themen 0
D neuen Prozess starten und anwendung beenden. Allgemeine Java-Themen 3
L Java Prozess 100% -> Analyse Allgemeine Java-Themen 2
P Scanner als Inputstream für Java Prozess Allgemeine Java-Themen 4
J Aktuellen Prozess herausfinden. Allgemeine Java-Themen 3
GUI-Programmer Prozess eine Bezeichnung geben Allgemeine Java-Themen 3
M Einen Prozess "crashen" lassen Allgemeine Java-Themen 9
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
E externen Prozess schließen, wenn Programm geschlossen wird Allgemeine Java-Themen 2
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
Nicer Prozess über Prozessnamen beenden Allgemeine Java-Themen 15
K Prozess starten, überwachen und beenden Allgemeine Java-Themen 4
O Wie laufenden Prozess einfangen? Allgemeine Java-Themen 7
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
D Shell-Prozess lässt Thread nicht enden Allgemeine Java-Themen 4
0din Prozess einer .jar umbenennen Allgemeine Java-Themen 7
data89 Java als Boot-Prozess/Daemon? Allgemeine Java-Themen 6
reibi Kill eines Java-Prozesses und Stop-Prozess Allgemeine Java-Themen 3
T In der JVM einen weiteren, unabhängigen Prozess starten Allgemeine Java-Themen 11
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
Y ProcessBuilder, Prozess wird gestartet, aber Anwendung nicht Allgemeine Java-Themen 5
M String an externen Prozess senden/auslesen Allgemeine Java-Themen 25
T Prozess beenden Allgemeine Java-Themen 3
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
G Prozess direkt starten beim Start des Appservers Allgemeine Java-Themen 3
G Prozess-Status Allgemeine Java-Themen 8
H Kommunikation mit einem c-Prozess funzt nicht richtig Allgemeine Java-Themen 5
L Zugriff auf anderen Prozess der VM Allgemeine Java-Themen 9
C nur einen Prozess eines Programmes erlauben Allgemeine Java-Themen 8
S was passiert bei diesem filereader prozess Allgemeine Java-Themen 2
A Java Prozess in neuer JVM Allgemeine Java-Themen 8
K Prozess-Visualisierung: Stichwörter gesucht Allgemeine Java-Themen 4
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
S Prozess javaw.exe läuft immer noch, obwohl Programm beendet Allgemeine Java-Themen 6
M Thread als eigenständiger Linux Prozess mit PID Allgemeine Java-Themen 8
clemente Swing Applikation killt kwin Prozess (unter Linux / KDE) Allgemeine Java-Themen 3
M Zweiten Prozess in Java starten! Allgemeine Java-Themen 5
R Kontrolle über Externe Prozess Allgemeine Java-Themen 5
G Prozess beenden, wenn er hängt Allgemeine Java-Themen 9
S Wie eine Anwendung als neuer Prozess starten? Allgemeine Java-Themen 8
P wie beende ich einen prozess? Allgemeine Java-Themen 3
V Endlosschleife mit Startbutton starten und Stopbutton stoppen Allgemeine Java-Themen 6
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
F ExecutorService sauber stoppen Allgemeine Java-Themen 8
V Thread schneller stoppen Allgemeine Java-Themen 2
G mehrere Threads starten/stoppen Allgemeine Java-Themen 4
O JFreeChart: ständiges Updaten der Chart stoppen Allgemeine Java-Themen 4
P Thread starten / stoppen / neustarten Allgemeine Java-Themen 8
E Durch System.in.read() blockierten Thread stoppen Allgemeine Java-Themen 10
L Thread stoppen über Button funktioniert nicht Allgemeine Java-Themen 7
B Scheduler soll bestimmten Job stoppen Allgemeine Java-Themen 4
M Thread aus anderer VM starten bzw. stoppen Allgemeine Java-Themen 7
G Thread stoppen Allgemeine Java-Themen 9
J Externes Programm starten und stoppen (Linux) Allgemeine Java-Themen 3
J zeit stoppen Allgemeine Java-Themen 11
C Thread stoppen und erneut starten Allgemeine Java-Themen 6
A TimerTask - Task stoppen - timer.cancel() funktioniert nicht Allgemeine Java-Themen 8
N Thread starten und Stoppen Allgemeine Java-Themen 14
J Thread stoppen Allgemeine Java-Themen 8
S methode stoppen / auf ein event warten Allgemeine Java-Themen 5
F Dienst via Java Starten/Stoppen Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben