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
wait but not sleep
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Ben!topgun_tt hat geschrieben:Mit der Anweisung "Sleep" tut es nicht, weil Sleep Anweisung alle Threads untergebrochen hat.
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Ben!topgun_tt hat geschrieben:Wenn ich ein time.sleep(10) im main Progamm eingegeben hätte, würde der "Blinker" stehen bleiben
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
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

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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.