Threads Wann läuft es parallel ab ?

Pommes9485

Bekanntes Mitglied
Moinsen,

ich habe mal ne ganz einfache Frage, bin in dem Punkt gerade ein bisschen verwirrt.

Läuft eine Klasse, welche von Thread erbt IMMER parallel zu anderen Klassen ab, egal ob ich run() ausführe oder nicht ?
Wenn ich von run aus Methoden in dem Thread aufrufe, laufen die dann auch parallel ab ?
Normale Klassen laufen doch nicht gleichzeitig mit anderen Klassen ab, oder ?
 
Solange sie nur von Thread erbt ist es erstmal nur ein Objekt mit Methoden die du ganz normal aufrufen kannst (wie run z.B.), nebenläufig wird es erst wenn du start() aufrufst.
 
Mal langsam, ich glaube du verwechselt da einiges. Also erstmal können Klassen nicht sowas wie laufen 😉 Eine Klasse die von Thread erbt enthält lediglich eine run-Methode, die von einem neuen System-Thread ausgeführt werden könnte. Und das passiert nur, wenn du start() aufrufst. Mit den anderen Methoden in der Klasse hat das erstmal nichts zu tun. Sofern du innerhalb der run()-Methode auf diese Methoden zugreifst, ja, dann werden die von dem neuen Thread ausgeführt. Aber du kannst diese Methoden nach wie vor von einem anderen Thread aufrufen. Du darfst dir das also nicht so vorstellen dass Klassen oder Methoden irgendwie parallel sind oder nicht. So läuft das nicht. Es gibt halt mehrere Threads, und die laufen parallel.
 
Ein Thread kann genau immer eine Aufgabe ausführen. Wenn du dein Programm startest, dann läuft der main-Thread los, der alles erledigt.
Wenn du einen neuen Thread erstellst und start() aufrufst, dann startet ein zweiter Thread der parallel zu anderen Threads läuft. Stell dir einen Thread einfach wie eine Person vor die immer genau eine Sache machen kann.

Läuft eine Klasse, welche von Thread erbt IMMER parallel zu anderen Klassen ab, egal ob ich run() ausführe oder nicht ?
Nein. Ein Thread muss immer per start() gestartet werden.

Wenn ich von run aus Methoden in dem Thread aufrufe, laufen die dann auch parallel ab ?
Parallel zu was? Zu anderen Threads, ja. Parallel zum eigenen Thread, nein.

Normale Klassen laufen doch nicht gleichzeitig mit anderen Klassen ab, oder ?
Das hat mit Klassen nichts zu tun, sondern mit Threads.

EDIT:
vieel zu langsam... 🙁
 

Zurück
Oben