WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   java - threads (http://www.wcm.at/forum/showthread.php?t=115502)

jopp 14.11.2003 21:57

java - threads
 
hi leute

ich habe ein allgemeine frage zu threads, und zwar:

habe ich ein programm mit gui (swing), dieses programm soll auch berechnungen durchführen. während diesen berechnungen würde ich gerne einen fortschrittsbalken am bildschirm anzeigen, welcher mir den aktuellen fortschritt zeigt.
(frage 1: )dies ist doch sicher mit threads zu realisieren?

der eine thread berechnet, während der andere für den fortschrittsbalken arbeitet. (frage 2: )nur wie können die beiden miteinander kommunizieren, damit der fortschrittsbalken auch einen vernünftigen stand der berechnungen wiedergibt?
(frage 3: )und nehme ich richtig an, wenn das alles möglich ist, das ich den beide threads durch ein Event jederzeit beenden kann?

(frage 4: )und wenn ich threads verwende, muss dann mein gesamtes gui-programm in einem thread ablaufen?



ich wäre euch für antworten sehr dankbar.

jopp

Flink 15.11.2003 12:24

Re: java - threads
 
Zitat:

(frage 1: )dies ist doch sicher mit threads zu realisieren?
genau
Zitat:

(frage 2: )nur wie können die beiden miteinander kommunizieren, damit der fortschrittsbalken auch einen vernünftigen stand der berechnungen wiedergibt?
eine Variable mit synchronized verwenden und abfragen
Zitat:

(frage 3: )und nehme ich richtig an, wenn das alles möglich ist, das ich den beide threads durch ein Event jederzeit beenden kann?
verwende interrupt() und isInterrupted(). Der Thread kann sich nach Prüfung dieser Methode durch Erreichen des Endes der run() Methode verabschieden.

Zitat:

(frage 4: )und wenn ich threads verwende, muss dann mein gesamtes gui-programm in einem thread ablaufen?
Bei der Verwendung von Theads gibt es nur ein einziges Programm. Das ist sinnvoller als das Schreiben eines zweiten Programms. Threads benötigen wenige Speicher und sind schneller.

moorhahn 15.11.2003 13:13

http://www.boku.ac.at/javaeinf/jein2.html#thread
da steht noch was über multithreading in java.

jopp 15.11.2003 20:38

danke für die rasche antwort

die 4. antwort habe ich nicht ganz verstanden. ich kann mich erinnern einmal gelesen zu haben, das ein java programm als prozess in einem betriebssystem läuft und dieser prozess dann verschiedene threads beinhalten kann. also läuft das programm sowieso in einem thread nur wird dieser nicht von mir sondern vom system erzeugt. ist das so richtig oder habe ich das falsch verstanden?

die 3. antwort ist verständlich. ich mache einfach abfragen in den thread, wodurch dieser dann gestoppt, unterbrochen werden kann.

das mit der variablen synchronized muss ich mir mal genauer anschauen.

auf jeden fall mal ein herzliches dankeschön für die antworten.

jopp

Flink 15.11.2003 22:06

Zitat:

die 4. antwort habe ich nicht ganz verstanden. ich kann mich erinnern einmal gelesen zu haben, das ein java programm als prozess in einem betriebssystem läuft und dieser prozess dann verschiedene threads beinhalten kann. also läuft das programm sowieso in einem thread nur wird dieser nicht von mir sondern vom system erzeugt. ist das so richtig oder habe ich das falsch verstanden?
Jeder Prozess (= Programm), der gestartet wird, hat natürlich beim Start auch einen Thread. Es gibt keinen Prozess ohne wenigstens einen Haupt-Thread. Ein Java-Programm wird in der Regel (nicht in Byte-Code umgewandelt) von der JVM abgearbeitet. Wenn ich mich nicht täusche, müsste diese auch die Threads erzeugen. Anders kann ich mir das nicht vorstellen, weil es sich nicht um Byte-Code handelt, der vom Betriebssystem verstanden wird, sondern um Java-Code.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag