小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
在同一个节点,没定义callback_group的情况下,有多个回调函数,请问算是多个线程么
-
@Zln4ever 在 在同一个节点,没定义callback_group的情况下,有多个回调函数,请问算是多个线程么 中说:
监听回
在main函数中使用MultiThreadedExecutor 多线程执行器,且在同一节点分别定义了一个监听回调和定时回调,没设置callback_group,请问是不是算两个线程且,互不干扰
--->不算第二种情况要看情况,最好还是指定回调组以及多线程执行器
-
@Lorry 你好,我也想问一下,什么情况下要使用单线程执行器,什么时候要用多线程执行器?如果没有写是默认使用的单线程执行器吗?之前没有学过这类的编程,只学过c,不是特别了解
-
@空白 可以看看我在介绍多线程执行器之前介绍的多线程死锁问题,单线程不能解决时就用多线程和多线程执行器
https://fishros.com/d2lros2foxy/#/chapt4/4.10服务实现(C++)?id=_233-死锁
@空白 @Zln4ever 热乎的:https://www.fishros.org.cn/forum/topic/895
-
@小鱼 收到,谢谢小鱼
-
@Lorry 就是说假如我这个节点有一个定时回调和一个监听回调,我要实现多线程的话,就要分别定义各自的线程组是吧。
-
@Zln4ever 首先使用多线程执行器,然后对于每个回调,指定各自的回调组
-
@Lorry 好的谢谢老哥
-
@Lorry 那单纯的定时和监听是不是单线程也能实现呢,因为定时和监听之间肯定存在时间差,比如说我先监听,然后以低于监听的速度定时发布内容?
-
@空白 最好不要,我之前遇到过丢失数据的问题。ros的多线程我理解,它不是直接开线程,线程控制是ros自己管理的,必要时才会开新线程
-
@Lorry 那就是说,如果资源足够的情况下,遇到话题服务动作相关的数据处理,最好都是使用多线程来完成?
-
@空白 回调就只有一个的话也没必要多线程吧
-
@Lorry 嗯嗯,我大概明白了,谢谢