zoukankan      html  css  js  c++  java
  • 有关ros::spin()和ros::spinonce()若干感受

    ros::spinonce()一般与loop_rate.sleep()同时出现,用来控制处理回调函数的频率,并且没有消息就收来时,就会程序堵塞,不会占用CPU资源。

    ros::spin(),用于回调函数的处理,并且执行这段程序就会进入无限次循环(消息来一次,回调函数就会立即处理一次,没有阅读到消息的时候,spin循环将会堵塞,不会占用CPU资源),直到ctrl_c来临,或者其他终止信号来临。一般所有的程序都写在这段语句之前,因为其之后的程序,不会被执行。

    两条语句与publish没有关系,只与回调函数有关系。

    两者都是为回调函数的消息创建队列依次去执行。区别就是spin是个无限循环,只要队列里消息在,程序就会立即执行回调函数。

    而spinonce是根据程序所设的频率,在while里依次调用spinonce,根据队列里消息的前后顺序,依次调用回调函数。

    总结两个关键词(消息队列与轮转执行,回调函数)。

  • 相关阅读:
    tomcat 添加用户名和密码
    linux系统下获取cpu、硬盘、内存使用率
    snmp 企业对应的mib编号
    String加密解密 2017.07.26
    Mongo日期
    linux sed 批量替换多个文件中的字符串
    Python和giL的关系
    vim
    乌班图
    Python
  • 原文地址:https://www.cnblogs.com/agvcfy/p/9314682.html
Copyright © 2011-2022 走看看