Multithreading

bspainkf36

Erfahrenes Mitglied
Hey :)
muss bei einer multithreading Anwendung der Main-Thread weiter laufen muss, um die Ausführung der Neben-Threads sicherzustellen. Z.B:

1. Erstelle mit Main-Thread weiteren Thread-XYZ.
2. Thread-XYZ bekommt eine aufwendige Aufgabe zugeteilt und fängt an zu arbeiten ...
3. Main-Thread wird beendet.

Läuft in diesem Fall der Thread XYZ weiter oder wird dieser beendet? Bei C\# muss Main-Thread weiter laufen, wie ist es bei Java? Danke für die Hilfe.

Gruß Kon
 
Hey :)
muss bei einer multithreading Anwendung der Main-Thread weiter laufen muss, um die Ausführung der Neben-Threads sicherzustellen. Z.B:

1. Erstelle mit Main-Thread weiteren Thread-XYZ.
2. Thread-XYZ bekommt eine aufwendige Aufgabe zugeteilt und fängt an zu arbeiten ...
3. Main-Thread wird beendet.

Läuft in diesem Fall der Thread XYZ weiter oder wird dieser beendet? Bei C\# muss Main-Thread weiter laufen, wie ist es bei Java? Danke für die Hilfe.

Gruß Kon

Huhu, der Main Thread wird beendet sobald alles abgearbeitet wurde.
Die JVM fährt herunter wenn alle anderen Threads ihre run() Methode beendet haben.

Eine Ausnahme sind Daemon-Threads, die sogar mitten in der Run methode aufhören wenn keine anderen normalen User-Threads laufen.

Der GarbageCollector, der automatisch mitläuft ist so ein Daemon-Thread

mfg
Martin C. Caesar (Filip)
 
Zusammengefasst, der Main-Thread läuft aus. Alle weiteren User-Threads werden zu Ende ausgeführt und anschließend wird die VM heruntergefahren?
 
Zusammengefasst, der Main-Thread läuft aus. Alle weiteren User-Threads werden zu Ende ausgeführt und anschließend wird die VM heruntergefahren?

Jau, wenn der Main ausläuft, wird gewartet bis alle anderen Userthreads auslaufen.
Wenn alle normalen Userthreads auch auslaufen, dann werden die Daemon-Threads gekilled und die JVM fährt herunter.

Wenn man sich alles sparen will killt man einfach alles mit System.exit(0);
 

Neue Beiträge

Zurück