【问题标题】:Porting Python Raspberry Pi application to Twisted - how to handle background threads that poll the hardware将 Python Raspberry Pi 应用程序移植到 Twisted - 如何处理轮询硬件的后台线程
【发布时间】:2013-08-27 16:10:30
【问题描述】:

我创建了一个小型设备,该设备使用小型 Raspberry Pi 单板计算机,让我可以远程向我的猫分发零食,并通过网络摄像头监控它和周围环境。 \

该软件由一个 Python 模块组成,该模块托管一个网站(以允许远程控制设备)、一个管理硬件并运行简单状态机的“线程”,以及一个捕获图片的“线程”通过网络摄像头运行运动检测算法,将捕获限制在猫在附近的时间。该网站托管一个 HTML 页面,其中包含一些使用 jQuery 对服务器进行 Ajax 回调的 Javascript。

软件一切正常,但我发现网站在初始加载时返回页面有时非常慢。由于 GIL 和 Python 简单的 http 服务器类设计,我认为问题在于 Python 的一般单线程特性。

我有兴趣将应用程序移至 Twisted,但我不确定如何移植处理相机和硬件状态机的两个线程。两个线程都运行一个循环,有效地轮询,循环的每次迭代之间有一个小的延迟。

谢谢

【问题讨论】:

    标签: python multithreading twisted raspberry-pi twisted.internet


    【解决方案1】:

    您可以使用LoopingCall (howto) 安排在特定时间间隔内重复调用函数。这可能会完全取代您的轮询线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2010-12-07
      相关资源
      最近更新 更多