Seite 1 von 1

theoretische sleep Frage

Verfasst: Dienstag 22. April 2014, 18:39
von Applepearlol
Angenommen: ich hab ein Script das eine Klasse definiert, in der eine Funktion einen time.sleep() Befehl ausführt, dieses Script importiere ich in ein zweites und instanziere diese Klasse.
Dann rufe ich die Funktion mit dem sleep drin auf und gleich danach ein print Befehl. Würde der printbefehl gleich Printen oder nachdem die sleep Methode durchgelaufen ist? also würde die sleep Methode das gesamte Script aufhalten oder nur die Klasse?

Re: theoretische sleep Frage

Verfasst: Dienstag 22. April 2014, 18:44
von BlackJack
@Applepearlol: Das `sleep()` wartet an der Stelle an der es ausgeführt wird, und verzögert dadurch natürlich die Rückkehr vom Methodenaufruf. Das hätte man aber auch einfach ausprobieren können. :-)

Re: theoretische sleep Frage

Verfasst: Dienstag 22. April 2014, 18:45
von Applepearlol
Mist, wie kann ich denn das umgehen? Also die Methode durchlaufen lassen und nebenbei etwas anderes machen lassen?

Re: theoretische sleep Frage

Verfasst: Dienstag 22. April 2014, 18:48
von BlackJack
@Applepearlol: Schau Dir mal das `threading`-Modul an. Aber sei gewarnt: Nebenläufige Programmierung hat so ihre Tücken.

Re: theoretische sleep Frage

Verfasst: Dienstag 22. April 2014, 19:02
von Applepearlol
Muss ich mir auf einem Raspi Gedanken machen wenn mehrere Threds die I2C Schnittstelle benutzten um mit den selben devices zu kommunizieren (in dem Fall MCP23017)?
Oder kann ich mit einem lock Objekt den gleichzeitigen Zugriff auf die Schnittstelle umgehen?

Re: theoretische sleep Frage

Verfasst: Dienstag 22. April 2014, 19:09
von BlackJack
@Applepearlol: Den Zugriff auf so eine externe Ressource sollte man auf jeden Fall immer nur von einem Thread aus gleichzeitig verwenden.