提问人:code_monkey 提问时间:8/24/2022 更新时间:8/24/2022 访问量:161
使用 AynscSpinner 处理来自两个订阅者的回调
Using AynscSpinner to process callbacks from two subscribers
问:
我查看了 AsyncSpinner,想检查我的理解是否正确。给定两个回调注册到一个订阅者并注册到另一个不同的订阅者,订阅 sub1 中消息的频率远高于 中。我们可能有一个全局回调队列,如 .此外,处理时间很长。即使我们使用 AsyncSpinner,进程是否仍然会卡住,因为 ROS 默认会阻止在一个订阅者中注册的回调被多个线程同时调用。例如,我们有 4 个线程,但有 3 个线程处于空闲状态,等待 1 个线程完成执行,因为其他线程可用的下一个回调仍然是 。因此,该进程仍然卡住,并且行为类似于单线程旋转,因为其他线程必须在一个线程处理时等待。我的理解正确吗?cb1
sub1
cb2
sub2
sub2
[cb1, cb1, cb1, cb1, cb2, cb1, cb1, cb1, cb1]
cb1
cb1
cb1
cb1
答:
评论