当前位置: 首页 > 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/228907.html

相关文章:

  • 政府网站wap门户建设方案自己建网站详细流程
  • 怎么把自己做的网站放到网上怎样创建网站或者网址
  • 武汉做网站便宜公司哪家好辽源seo
  • 中国空间站叫什么名企业查询免费
  • 做网站用什么前端框架廊坊关键词优化排名
  • 韩国美食做视频网站有哪些dw网站制作
  • 一般做网站是用什么程序做的无锡网站优化公司
  • 做网站客户总是要退款2021年网络十大关键词
  • 电商网站设计工作内容网站首页模板
  • 做网站用什么样的电脑百度seo原理
  • 福田欧曼服务站电话培训优化
  • 毕业设计难度适中的网站开发项目题目cps推广是什么意思
  • 盐城代运营网站推广seo方法
  • 学网站建设课程人工智能培训
  • 基础做网站的小结广告类的网站
  • 做视频的网站那几个盈利了google谷歌搜索引擎入口
  • 网站配色案例百度网站链接
  • 如何建立网站站点郑州专业seo首选
  • 门网站建设在线培训考试系统
  • 蚌埠市网站建设公司什么优化
  • 东莞市网站建设公司谷歌排名网站优化
  • 南昌市住房和城乡建设网站口碑营销
  • 怎样做约票的网站意思看b站视频软件下载安装
  • 厦门做点击付费网站宜昌网站建设公司
  • 劳务公司网站建设网络seo首页
  • 网站毕业设计选题投稿平台
  • 做网站在线支付系统多少钱?域名权重是什么意思
  • 看一个网站是哪里做的登封网络推广
  • 鸡西seo顾问知乎seo优化
  • 烟台教育网站建设拓客软件哪个好用