You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派+Flask API+多线程场景下,按钮线程循环内变量状态不一致问题求助

树莓派+Flask API+多线程场景下,按钮线程循环内变量状态不一致问题求助

各位大佬好!最近在树莓派上搞闸机控制的项目,卡到一个多线程的问题上了,想请大家帮忙支支招~

先给大家说下我的项目背景:我用Flask写了个API跑在树莓派上,用来控制闸机的伺服电机,还对接了一套人脸识别系统,整体的工作流程是这样的:

  • 接收外部人脸识别API传过来的用户识别数据
  • 如果系统判定允许通行,就触发伺服电机打开闸机
  • 行人通过闸机后按下确认按钮,系统就完成这次通行的确认

现在碰到的麻烦是多线程环境下,按钮监听线程的循环里,变量状态总是和预期对不上。比如我在处理API请求的线程里把access_granted设为True,但按钮线程的循环里读这个变量时,有时候还是False;或者一次通行完成后,变量没被正确重置,导致下一次的通行逻辑直接乱掉。

我单独测试按钮线程的时候逻辑完全正常,但一和Flask的API请求线程一起跑就出问题。试过用全局变量传递状态,也试过把变量封装成类的实例属性,可都没解决这个状态不一致的问题。

另外补充下:如果需要更多代码片段或者上下文细节,我随时可以发上来!还有抱歉哈,我的问题是用AI翻译的,可能英文表述或者代码里会有小错误,大家多担待~

有没有大佬遇到过类似的多线程状态同步问题?或者能给我指个方向,怎么才能保证Flask请求线程和按钮监听线程之间的变量状态是一致的?

备注:内容来源于stack exchange,提问作者Fernando Leão

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:39:30