如何解决python 中 Raspberry Pi 回调函数的限制
在为帖子 GPIO event detect not giving output when button pressed 寻找解决方案时,我发现了其他几篇关于树莓派 Python 回调主题的帖子。
- Python RaspberryPi GPIO Event Detection in Tkinter Failing
- Raspberry Pi RPi.GPIO error with threated callback
这些帖子让我想知道 python 中用于处理回调的底层实现是什么,这个实现有什么限制?
Raspberry Pi 论坛上的一个帖子(参见 https://www.raspberrypi.org/forums/viewtopic.php?t=128510 )表明有一个线程,将其标记为回调线程,用于处理所有回调,因此是否应该有多个事件触发调用回,有一种队列,回调线程从队列中删除回调请求,并在回调线程中处理每个请求,而不是主线程或任何其他线程。这意味着如果回调执行某种冗长的计算,则任何其他等待处理的回调都将被延迟。
但是,帖子中没有指向文档的链接,而且帖子是 2015 年的,所以可能是 python2。
上述 StackOverflow 帖子之一 Raspberry Pi RPi.GPIO error with threated callback 描述了在回调函数中使用 os.system()
以及在主脚本中调用 os.system()
函数而不是调用时的问题返回功能,效果很好。
那么python2和python3中回调功能的实现是什么?回调函数有哪些限制,例如:
- 尽可能减少计算和时间
- 最小化函数调用和嵌套深度
- 尽量减少使用的局部变量和这些变量的大小
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。