DonkeyCar threaded配置解析
本帖最后由 昊男Henry 于 2022-4-3 21:45 编辑DonkeyCar源码中,manage.py通过vehicle.py实现对不同功能组件的实例化。
本文以actuator.py为例,分析threaded=True对程序运行逻辑的影响。
【现象】
[*]threaded = true时,独立开辟的线程在update()中一直刷新,在每次大循环中调用一次run_threaded()
[*]threaded = false时,和其他线程组成队列,在每次大循环中调用一次run()
【结论】
[*]run_threaded()和update()为一组,功能上与run()等效
[*]update()为独立线程,实时性比run()要好,适合需要常驻的服务,例如串口接收。【实测update()每秒刷新200次以上,run()每秒只恒定刷新20次】
run_threaded()和update()为一组,功能上与run()等效
update()为独立线程,实时性比run()要好,适合需要常驻的服务,例如串口接收。【实测update()每秒刷新200次以上,run()每秒只恒定刷新20次】
这一句非常有迷惑性哦
能否解释一下 什么样的part使用threaded,什么样不使用呢?
极凹甫 发表于 2022-4-6 20:46
这一句非常有迷惑性哦
能否解释一下 什么样的part使用threaded,什么样不使用呢?
没有绝对界定,区别在于是否为独立线程。需要高速响应的part建议配置threaded=True,例如Web显示实时画面。舵机PWM信号刷新只有50~60Hz,不必要配置threaded,减少系统资源占用。
页:
[1]