wait but not sleep

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
topgun_tt
User
Beiträge: 2
Registriert: Donnerstag 30. März 2006, 14:25

Donnerstag 30. März 2006, 14:37

Hallo, ich habe eine Frage über Sleep Funktion.

ich habe ein programm mit zwei Threads implementiert. Die zwei Threads sind unabhängig.

Jetzt soll ein thread 10 Sekunden gestoppt werden, aber andere thread ganz nomal laufen lassen. Mit der Anweisung "Sleep" tut es nicht, weil Sleep Anweisung alle Threads untergebrochen hat. D. h. sowohl thread 1 auch thread 2 werden 10 Sekunden gestoppt.

Hat jemand erfahrungen dazu?

Danke

ben
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 30. März 2006, 15:22

topgun_tt hat geschrieben:Mit der Anweisung "Sleep" tut es nicht, weil Sleep Anweisung alle Threads untergebrochen hat.
Hi Ben!

Das stimmt so nicht ganz. time.sleep(10) unterbricht nur den Thread, **in** dem dieser Befehl aufgerufen wird. Die anderen Threads laufen weiter.

Siehe: http://www.python-forum.de/viewtopic.php?p=30311#30311

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
topgun_tt
User
Beiträge: 2
Registriert: Donnerstag 30. März 2006, 14:25

Freitag 31. März 2006, 17:24

Hallo,Gerold

danke für die Antwort. Ich habe immer noch das Problem.

Eigentlich ist mein programm aus einem "Main Programm" und ein "Thread" besteht. Das Thread ist für eine "Blinkleuchte" im GUI verantwortlich. Es blinkt 2 mal pro Sekunde. Das Thread ist unabhängig mit dem "Main Programm"

Wenn ich ein time.sleep(10) im main Progamm eingegeben hätte, würde der "Blinker" stehen bleiben (Es blinkt nicht mehr bis zu 10 Senkunden). Hast du zufällig eine Lösung für es?

Besten Dank im Voraus und schönes Wochenende

ben
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 31. März 2006, 17:42

topgun_tt hat geschrieben:Wenn ich ein time.sleep(10) im main Progamm eingegeben hätte, würde der "Blinker" stehen bleiben
Hi Ben!

Die Lösung scheint mir im Moment ziemlich einfach. Erstelle zwei Threads und lasse dein Hauptprogramm so lange warten, bis beide Threads ihren Job beendet haben.

Ein Thread der die Aufgaben erfüllt und ein Thread der den anderen Thread steuert.

Schau dir mal alle Beispiele in diesem Thema genauer an. Vielleicht findest du eine Methode, die dir gefällt. http://www.python-forum.de/viewtopic.php?t=3869

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 31. März 2006, 17:45

Zusatz:

Wahrscheinlich ist dein "Hauptprogramm" für die grafische Ausgabe (GUI) zuständig. Wenn du also dein "Hauptprogramm" zum Schlafen verurteilst, wer soll dir dann das Blinken anzeigen?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten