睡眠时间有问题,有没有其他选择

时间:2017-03-14 21:32:52

标签: python raspberry-pi3

我正在编写一个程序来控制我的覆盆子pi上的GPIO。我希望我的程序可以问我在关闭之前要保留GPIO多长时间。

是否可以让它保持1小时然后关闭。我遇到的问题是,当它打开一小时后,我无法发出任何其他命令来打开其他GPIO,因为sleep.time仍在处理中。我想同时为不同的时间设置多个GPIO。

2 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题。从概念上讲,不是睡30秒然后做某事,你可以睡一秒钟,做一堆东西,检查时间,泡沫,冲洗,重复。通过"睡一秒钟"它可以很容易地是十分之一秒或五秒或者对我来说似乎合理的东西。

另一种解决方案是为此sleep命令创建第二个线程(或进程),以便主线程(或进程)不受影响地运行。

选择取决于您需要做什么,需要延迟的准确程度,系统上运行的其他内容等等。

答案 1 :(得分:-1)

您当前的脚本只有一个线程正在运行,sleep()会将当前正在运行的线程置于睡眠模式,这会阻止其他命令。

time.sleep(secs) Python Doc

  

time.sleep(秒)

     

暂停执行当前线程达到给定的秒数。

您需要在后台再添一个线程,为您保留计时器。同时,前台的线程仍然可以接受其他命令。

我建议你阅读这个页面 threading – Manage concurrent threads