我创建了一个小型设备,它使用小型 Raspberry Pi 单板计算机,让我可以远程分配零食给我的猫,并通过网络摄像头监控他和周围环境。\
该软件由一个 Python 模块组成,该模块托管一个网站(允许远程控制设备),一个管理硬件并运行简单状态机的“线程”,以及一个通过网络摄像头捕获图片的“线程”它运行运动检测算法以将捕获限制在猫在附近的时间。该网站拥有一个 HTML 页面,其中包含一些使用 jQuery 对服务器进行 Ajax 回调的 Javascript。
该软件一切正常,但我发现该网站有时在初始加载时返回页面非常慢。由于 GIL 和 Python 简单的 http 服务器类设计,我认为问题在于 Python 的一般单线程性质。
我有兴趣将应用程序移至 Twisted,但我不确定如何移植处理相机和硬件状态机的两个线程。两个线程都运行一个循环,有效地轮询,循环的每次迭代之间有一个小的延迟。
谢谢