CPU Auslastung 99%

lernen.2007

Erfahrenes Mitglied
Hi Leute,

ich habe in JAVA ein Oberfläche programmiert, dass es ein anderes Tool startet. Ich habe im grafischen Oberfläche ein Play(Start Tool) und ein Stop(Stop Tool) platziert. Play funktioniert ganz gewöhnlich. Wenn Tool läuft dann steigt die CPU Auslastung auf 99%. Wenn ich Stop Taste drücke, dann reagiert es überhaupt nicht. Wie kann man es besser machen bzw. dass Stop Taste auch richtig funktioniert( schnell reagiert).

Danke im Voraus.

Erkan
 
Ich finde es ein bisschen schwierig aus deiner Beschreibung den Fehler zu rekonstruieren. Was startest du denn über die Button. Und wie machst du das?

Oder habe ich da gerade grundsätzlich was verrafft?

MfG
Daniel
 
Mit Play Taste starte ich von der JAVA Umgebung aus ein beliebiges Tool. Sobald das Tool gestartet wird, dann steigt die CPU Auslastung auf 99%. Ich will jetzt mit Stop Taste dieses Tool wieder beenden. Aber Stop Taste reagiert nicht wenn dann erst 10-Sekunden später. Das Grund ist ja klar, wegen CPU Auslastung. Wie kann ich so machen, dass der Stop Taste auch so schnell wie Play Taste reagiert?

Danke
:suspekt::suspekt::suspekt:
 
Hi !
Ich glaube nicht das du die CPU-Asulastung ändern kanst.
Dazu müsstest du das Programm auf der Stelle anhalten
und nicht mehr aufgerufen werden. Und das ist letztendlich
Sache des Betriebssystems. Die Zeit die die CPU nach dem
drücken des Stopbuttons noch aktiv ist ist durchaus legitim.
Sie tritt auch nach dem drücken des Playbuttons auf.
Playbutton : Alles in den Speicher laden.
...Programm läuft...
Stopbutton : Speicher wieder freigeben.
Es wird also auch eine gewisse Zeit beim druecken des
Playbuttons benoetigt.

Ich hoffe ich hab dich richtig verstanden?

Benny
 
Nein. Stellt dir ein MP3 Player vor. Du drückst auf die Play Taste und hörst Musik. Du willst jetzt die Musik Wiedergabe stoppen aber MP3 Player reagiert auf die Stop Taste nicht. Weil MP3 Player die CPU um 99% auslastet. Ich hoffe mit diesem Beispiel wird ein bisschen deutlicher.

Danke
:suspekt:
 
Kann es sein dass du etwas in deinem GUI Thread startest das sehr rechenaufwändig ist und deswegen die anderen Events alle blockiert?

Versuche mal das ganze in einen eigenen Thread zu verlagern, aber genaueres kann man wirklich nur dann sagen, wenn du deinen betroffenen Code hier postest.

Lg, Yanick
 
Hmm, aus der Beschreibung ist das wirklich schwer rauszuhoeren, was du fuer ein Problem hast. Machst du in deinem GUI Programm eine Ueberpruefung, ob das aufgerufene Programm noch laeuft oder wartest du mit einer Schleife auf ein bestimmtes Event? Wenn ja: wie oft machst du diese Ueberpruefung? Oftmals wird gerne eine Schleife verwendet, die staendig wiederholt wird. Ein Thread.sleep(<Zeit in Millisekunden>) in dieser Schleife koennte dann weiterhelfen.
Ohne den Quellcode ist das aber nur eine Vermutung.
 
Zurück