如何解决从网络侦听器线程中断主 python 线程
-
我需要从 python 中的另一个线程中断一个主线程。
-
期望的行为是在执行期间抛出异常 执行主线程。
详情:
主线程使用队列(语音、电机控制、视觉动画)通过各种线程编排一个电子动画机器人。
通信线程通过 USB 侦听 Arduino(侦听运动确认)。 Arduino 被编程为通过 USB 连接发送消息来处理按钮按下硬件中断。
我需要能够在通信线程上接收到硬件中断消息时立即中断主线程的动画例程,从本质上将硬件中断转换为软件级别。
完美的行为是在主线程上触发异常之一,在机器人造成任何伤害之前停止它。
我尝试了许多“最佳实践”方法,例如事件处理,但这留下了机器人在处理硬件中断事件之前完成其当前移动的危险时期。我也考虑过信号,尽管将它们用于线程通信并不理想。
有什么建议吗?
解决方法
对于那些稍后可能会发现这一点的人,我通过将主线程从所有需要很长时间才能完成的操作(任何文本到语音、动画)中卸载来避免这个问题。这样,主线程对命令进行排序,等待其完成,并在等待时读取 USB 消息。如果收到硬件中断消息,它会杀死所有线程并进入紧急停止模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。