WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   For schleife verzögern + JAVA (http://www.wcm.at/forum/showthread.php?t=194479)

coolbininet 01.07.2006 15:04

For schleife verzögern + JAVA
 
Hallo!

Gibt es eine Möglichkeit eine forschleife zu verzögern, zB 1, 2, 3 Sekunden, mit sleep, wait und modify kann ich nur Threads "bearbeiten"

Brauche ich aber nicht wirklich!

Grüsse

Coolbininet

xandl33 02.07.2006 06:26

auf was willst warten?

Biri 02.07.2006 21:42

Zitat:

mit sleep, wait und modify kann ich nur Threads "bearbeiten"
was möchtest du denn sonst bearbeiten?
oder anders gefragt: was glaubst du, wo deine for schleife ausgeführt wird, ansatt in einem thread?

fg
hannes

coolbininet 03.07.2006 19:03

Konkretere Angabe
 
Hallo Leute!

Da ich ein Java Beispiel erweitern möchte, das für einen Anfänger die objektorientierte Struktur näherbringt, möchte ich eine Kaffeemaschine mit bauen. Diese soll 1 oder 2 Sekunden warten und dann hinschreiben, habe zb 50 ml Kaffee gebrüht, dann habe 100 ml Kaffee gebrüht usw.

Wollte diese Ausgabe mit einer ForSchleife machen, und dann die Ausgabe! Habe ich es einigermaßen verständlich erklärt?

Grüße

Coolbininet

jak 03.07.2006 21:04

Ist Verständlich. In Java sind AFAIK aber Threads die einzige Möglichkeit um Dinge zu verzögern (busy waiting - z.B. eine Schleife die sehr viele Durchläufe nichts tut - halte ich für keine gute Idee).

jak

Biri 03.07.2006 21:17

hi,

programmiersprachenunabhängig (was für ein wort) sollte man den thread warten lassen.
Warum?
Jedes betriebssystem, das mehrere tasks gleichzeitig ausführen kann, lässt während dieser wartezeit andere tasks zum zuge kommen. Sobald das eigene prog. die zeitscheibe bekommt, und es ja "nur" wartet, gibt es diese sofort wieder weiter.

Ganz anders, wenn man aktiv etwas tut - z.B. eine for-schleife hochzählen. Das ist sehr prozessorintensiv und kann schnell mal den gesamten rechner blockieren. Der Rechner wird also mit nichtstun blockiert.

Ich denke es ist klar, welche methode zum "warten" die besser ist. ;)

fg
hannes

coolbininet 04.07.2006 18:49

Gibt es da wirklich keine Möglichkeit?

Ich glaube ich muss auf GW - Basic umsteigen, dort könnte es klappen *g*.

Grüsse

Jaguar 04.07.2006 20:59

Zitat:

Original geschrieben von coolbininet
Gibt es da wirklich keine Möglichkeit?

Ich glaube ich muss auf GW - Basic umsteigen, dort könnte es klappen *g*.

Grüsse

Also so ganz versteh ich nicht wo genau du mit den vorgeschlagenen Lösungen ein Problem hast? JEDES Programm in Java läuft in einem Thread (auch deines ;) . Wenn du dein Programm pausieren lassen willst dann hilft ein einfaches

Thread.currentThread.sleep(1000);

um dein Programm für eine Sekunde zu pausieren.
Was für eine andere Möglichkeit willst den noch? Die erfüllt doch eh genau den Zweck den du wolltest.

coolbininet 04.07.2006 22:06

Achso geht das, muss ich gleich mal in GW-Basic ausprobieren *g*.

Danke!

Who-T 05.07.2006 04:02

Zitat:

Original geschrieben von Jaguar
Thread.currentThread.sleep(1000);

Ein einfaches

Thread.sleep(1000);

reicht auch

From the javadoc:
"Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds. The thread does not lose ownership of any monitors"


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:10 Uhr.

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