Discussions Search    Reviews    Search Aid    Buzzzz    Google@Omgili Add to iGoogle   Bookmark and Share

  Advanced Search

CPU-Last beim warten


On Thu, 03 Jul 2008 15:20:07 +0200, Stefan Kuhne <...@gmx.net

Hallo,

ich habe eine Software, die Downloads macht.
Dabei bekommt jeder download einen Thread und ein anderer steuert das
ganze, sprich wenn einer fertig ist, wird der nächste gestartet.

Das sieht dann so aus:

while (threads.size() try {
// System.out.println("Queue ist voll!");
//Thread.sleep(10 * 1000);
threads.wait();
} catch (InterruptedException e) {
}
}

Wobei threads.size() die aktuell belegten ausgibt, den Namen muss ich
mal ändern.

Da nur ein Kern voll ausgelastet wird, gehe ich davon aus, dass es
dieser Thread ist der die Last macht.

Ist "Thread.sleep()" und "obj.wait()" beides aktives warten?
Wenn ja, wie kann man das sonst lösen?

Stefan Kuhne

PS.: wobei ich mit "wait()" beim starten eine "Exception in thread
"Thread-2" java.lang.IllegalMonitorStateException" bekomme. Was sagt mir
das? Die DS von threads ist selbst geschrieben.




On Thu, 3 Jul 2008 13:29:05 +0000 (UTC), Bernd Eckenfels <...@lina.inka.de

Stefan Kuhne <...@gmx.net
Unwahrscheinlich. wait() oder sleep() verbraucht keine CPU.


Da fehlt ein synchronized.

Gruss
Bernd

On Thu, 03 Jul 2008 16:19:47 +0200, "Ingo R. Homann" <...@web.de

Hi,

Bernd Eckenfels schrieb:

Stimmt zwar faktisch gesehen. Trotzdem würde ich in diesem Fall
(angesichts der Tatsache, dass überhaupt die Frage aufkommt, was denn
"wait" überhaupt ist), die Empfehlung geben, einfach sleep zu verwenden.

Andernfalls kommt als nächstes (nach ein paar Zwischenpostings) die
Frage, was denn überhaupt "notify" bedeutet, und der Thread ufert ins
endlose aus.

Ciao,
Ingo

On Thu, 03 Jul 2008 18:49:12 +0200, Stefan Kuhne <...@gmx.net

Ingo R. Homann schrieb:

Das ist mir schon klar, die Frage war mehr nach der umsetzung im Code.

Stefan Kuhne

On Thu, 03 Jul 2008 18:51:25 +0200, Stefan Kuhne <...@gmx.net

Bernd Eckenfels schrieb:
Wie kann ich den übeltäter am besten suchen?

Ganz doofe Frage, in der DS oder im Programm?
Ok, eher im Programm.
Um die Schleife oder nur um das wait?

So tief sind wir in der Vorlesung leider nicht in Threads rein gegangen.

Stefan Kuhne

On Thu, 3 Jul 2008 19:36:02 +0000 (UTC), Bernd Eckenfels <...@lina.inka.de

Stefan Kuhne <...@gmx.net
Da ging es nie um Monitore und wait/notif? Du kannst ein wait()/notify() nur
auf einem Objekt aufrufen, dessen Monitor du (der aktuelle Thread) hat.
Einen Monitor auf ein Objekt bekommst du mit synchronized(object) { }. Wenn
du wait machst gibst du den Monitor auf, und bekommst ihn vor dem aufwachen
wieder.

Gruss
Bernd

On Thu, 03 Jul 2008 22:11:47 +0200, Stefan Kuhne <...@gmx.net

Bernd Eckenfels schrieb:
So, das funktioniert.
Nur die CPU-Last sind immer noch 50% (DualCore).

Stefan Kuhne

On Thu, 3 Jul 2008 20:29:44 +0000 (UTC), Bernd Eckenfels <...@lina.inka.de

Stefan Kuhne <...@gmx.net
Dann ist das Problem ein anderer Thread.

Gruss
Bernd

On Thu, 03 Jul 2008 23:06:15 +0200, Stefan Kuhne <...@gmx.net

Bernd Eckenfels schrieb:
Nur sind das im Moment 3, oder das haupt Programm.
Was macht das eigentlich?
Stimmt im Moment ein Fenster anzeigen.

Ok, gefunden.
Ich habe da irgendwo ein
while(test) {
}

eingebaut.

Trotzdem Danke für eure Hilfe bin jetzt etwas schlauer.

Stefan Kuhne

On Fri, 4 Jul 2008 14:19:05 +0200, "Hubert Partl" <...@boku.ac.at



Aus welchem Grund?

Wolltest Du die CPU ein bisschen anwaermen,
oder war das nur eine ungnstige Variante zu
Thread.sleep(365*24*60*60*1000L);

--


On Sat, 05 Jul 2008 01:37:42 +0200, Stefan Kuhne <...@gmx.net

Hubert Partl schrieb:
Keine Ahnung,

das schlimme ist, nach der Schleife wurde meine beenden Methode
ausgeführt (oder auch nicht).

Jetzt ist der Spuck weg, wo auch immer der hergekommen ist.

Stefan Kuhne

Discussion Title: CPU-Last beim warten
Title Keywords: CPU-Last  beim  warten 
 Latest discussions from this group  (de.comp.lang.java)
Überarbeitung von Collections in älteren Quellcodes  
[05 Oct 2008]
On Sun, 05 Oct 2008 20:00:43 +0200, Egon Schmid <egon.schmid@disc hingen.de Hallo! Wenn...
man sich so ältere Quellcodes, die unter Java 1.5 und älter geschrieben sind, bringt Eclipse...
Doc - files  
[04 Oct 2008]
On Sat, 4 Oct 2008 15:29:58 +0200, Reinhard Schüll <chickolino@hotma il.com Hallo NG, ...
wo (Download-Link) finde ich bitte die doc-files f Swing-Komponenten von jdk1.6.0_07? GruReinhard...
J2EE + Netbeans + Glassfish Deployment Probleme  
[02 Oct 2008]
On Thu, 2 Oct 2008 05:48:14 -0700 (PDT), Björn Sonntag <bjoern.sonntag@t -online.de Hallöchen...
NG, ich entwickel aktuell ein etwas grösseres Projekt mittels Netbeans und es soll...
More...