当前位置: 首页 > wzjs >正文

医药做网站免费网站模板网

医药做网站,免费网站模板网,wordpress调整配置,中移建设 网站为什么需要多线程? 在ROS 2中,节点可能需要同时处理多个任务(如接收传感器数据、响应服务请求、执行定时任务等)。如果使用单线程执行器,所有回调函数会按顺序执行,可能导致延迟。 例如:一个节…

为什么需要多线程?

  • 在ROS 2中,节点可能需要同时处理多个任务(如接收传感器数据、响应服务请求、执行定时任务等)。如果使用单线程执行器,所有回调函数会按顺序执行,可能导致延迟。
    例如:一个节点同时订阅激光雷达数据和摄像头数据,若激光雷达回调函数耗时较长,摄像头回调会被阻塞,导致数据处理延迟。
  • MultiThreadedExecutor的优势:并行处理多个回调函数,减少阻塞。提高实时性,适用于高频传感器数据或计算密集型任务。
import rclpy
from rclpy.node import Node
from rclpy.executors import MultiThreadedExecutor, SingleThreadedExecutor
from std_msgs.msg import String
import timeclass DemoNode(Node):def __init__(self):super().__init__('demo_node')# 订阅两个话题self.sub1 = self.create_subscription(String, 'topic1', self.callback1, 10)self.sub2 = self.create_subscription(String, 'topic2', self.callback2, 10)self.get_logger().info("节点已启动")def callback1(self, msg):self.get_logger().info(f'回调1开始处理: {msg.data}')time.sleep(2)  # 模拟耗时操作self.get_logger().info('回调1处理完成')def callback2(self, msg):self.get_logger().info(f'回调2开始处理: {msg.data}')time.sleep(1)  # 模拟耗时操作self.get_logger().info('回调2处理完成')def main(args=None):rclpy.init(args=args)node = DemoNode()# 使用 MultiThreadedExecutor(多线程)executor = MultiThreadedExecutor(num_threads=4)  # 默认线程数为CPU核心数# 对比:使用 SingleThreadedExecutor(单线程)# executor = SingleThreadedExecutor()executor.add_node(node)try:executor.spin()  # 开始执行回调except KeyboardInterrupt:passfinally:executor.shutdown()node.destroy_node()rclpy.shutdown()if __name__ == '__main__':main()

通过两个终端分别发布话题消息:

# 终端1:发布 topic1
ros2 topic pub /topic1 std_msgs/String "data: 'Hello1'" -1# 终端2:发布 topic2
ros2 topic pub /topic2 std_msgs/String "data: 'Hello2'" -1

单线程:回调函数按顺序执行,callback2 必须等待 callback1 完成。

[INFO] [demo_node]: 回调1开始处理: Hello1
[INFO] [demo_node]: 回调1处理完成  # 2秒后
[INFO] [demo_node]: 回调2开始处理: Hello2
[INFO] [demo_node]: 回调2处理完成  # 1秒后(总耗时3秒)

多线程:两个回调函数并行执行,总耗时仅取决于最长的回调(2秒)。

[INFO] [demo_node]: 回调1开始处理: Hello1
[INFO] [demo_node]: 回调2开始处理: Hello2
[INFO] [demo_node]: 回调2处理完成  # 1秒后
[INFO] [demo_node]: 回调1处理完成  # 2秒后(总耗时2秒)
http://www.dtcms.com/wzjs/281787.html

相关文章:

  • 个人网站模板怎样申请网站
  • 网站开发项目中的rd百度销售系统
  • 长沙网站建设费用疫情防控最新信息
  • 中企动力网站建设营销推广策划方案范文
  • 网站建设 请示广告推广方式有哪几种
  • 湖州网站建设公司哪家好北京seo招聘网
  • 网站推广要多少钱在线智能识图
  • 三分钟做网站百度小说app下载
  • 重庆奉节网站建设公司成都公司建站模板
  • 做的比较简约的网站网络广告投放公司
  • 淮阳城乡建设局网站seo搜索优化软件
  • wap网站开发联系电话让顾客进店的100条方法
  • 营销网站建设与管理百度文库账号登录入口
  • 济南网站建设设计公司域名邮箱 400电话
  • 重庆建筑建设委员会官方网站关键词优化搜索排名
  • 新建茶叶网站文章内容建设广东清远今天疫情实时动态防控
  • 燕窝网站怎么做的网站推广方法
  • 企业网站建设服务哪家好计算机培训机构哪个最好
  • 建设网站常见问题长春seo技术
  • 网站建设工作室+怎么样凡科建站官网免费注册
  • 网上服装商城网站建设方案策划武汉seo收费
  • 求职找工作爱站网seo工具包
  • 东莞网站建设选高科技台州关键词首页优化
  • 交互做的好的中国网站东莞疫情最新消息今天
  • 合肥 中网站什么平台可以打广告做宣传
  • 网站建设与管理专业实训室军事新闻俄乌最新消息
  • 做嫒嫒网站百度一下百度官方网
  • aspx网站架设教程seo推广外包
  • 外贸行业网络推广怎么理解搜索引擎优化
  • 星巴克vi设计分析滨州seo排名