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

广西钦州有人帮做网站的公司吗武汉seo优化代理

广西钦州有人帮做网站的公司吗,武汉seo优化代理,佛山按天网站优化服务,个人网站做短视频【前言】 众所周知,ROS中的所有回调函数,都由 ros::spin() 这个家伙来统一管理和唤醒。这里说的是所有通过ROS方式创建出来的回调函数,比如ros::Subscriber、ros::Timer等等的回调函数。 【举例】 我们先来看一个示例节点: #i…

【前言】

众所周知,ROS中的所有回调函数,都由 ros::spin() 这个家伙来统一管理和唤醒。这里说的是所有通过ROS方式创建出来的回调函数,比如ros::Subscriber、ros::Timer等等的回调函数。

【举例】

我们先来看一个示例节点:

#include <ros/ros.h>
#include <cstdlib>
#include <time.h>
#include <iostream>void test_1()
{usleep(200 * 1000);ROS_INFO("test 1");
}void test_2()
{ROS_INFO("test 2");
}int main(int argc, char** argv)
{ros::init(argc, argv, "test_node");ros::NodeHandle nh;ros::Timer timer_1 = nh.createTimer(ros::Duration(0.1), [&](const ros::TimerEvent &){test_1();});ros::Timer timer_2 = nh.createTimer(ros::Duration(0.05), [&](const ros::TimerEvent &){test_2();});ros::spin();return 1;
}

你猜 timer_2 定时器的回调函数 test_2() 的实际运行频率是多少?会是我们设置的0.05秒一次吗?

很遗憾,test_2() 的实际运行频率是 0.2秒一次!

聪明的你肯定已经察觉出端倪,test_1() 这个回调中阻塞了200毫秒,并且它也影响了 test_2() 的调用。

没错,ros::spin() 是通过单线程的方式,管理所有回调函数的!!!

【出路】

那如果我们的节点中,有些回调函数确实需要执行一些复杂操作,导致回调执行被阻塞一段时间,我们又该怎么办呢?

此时,我们应该把 spin() 替换成 ros::AsyncSpinner ,也就是异步的多线程回调执行器!同样是上面的代码,我们做一下修改:

#include <ros/ros.h>
#include <cstdlib>
#include <iostream>
#include <time.h>void test_1()
{usleep(200 * 1000);ROS_INFO("test 1");
}void test_2()
{ROS_INFO("test 2");
}int main(int argc, char** argv)
{ros::init(argc, argv, "test_node");ros::NodeHandle nh;ros::Timer timer_1 = nh.createTimer(ros::Duration(0.1), [&](const ros::TimerEvent &){test_1();});ros::Timer timer_2 = nh.createTimer(ros::Duration(0.05), [&](const ros::TimerEvent &){test_2();});ros::AsyncSpinner spinner(4);           //非阻塞式的spinner, 可以使用start和stop进行启停spinner.start();                        //启动线程ros::waitForShutdown();return 1;
}

再次运行这个节点,你会发现,test_2() 的执行频率变成了我们期望的 20Hz了。

注意:上面代码中的 spinner(4) 代表开启4个线程循环,你可以根据你的运行环境,设置影响的线程数量。

http://www.zhongyajixie.com/news/43701.html

相关文章:

  • frontpage怎么做网站东莞seo建站优化哪里好
  • 湛江做网站公司宁波微信推广平台哪个好
  • 网站后台怎么做超链接一台电脑赚钱的门路
  • 线上购物网站建设成本高佣金app软件推广平台
  • 做网站租用数据库宣传网站站点最有效的方式是
  • 秦皇岛做网站公司汉狮价格seo工程师招聘
  • 怎样做理财网站网络营销策划与推广
  • 做公考题的网站seo研究中心晴天
  • 领动做的网站怎么样网页制作的步骤
  • 重庆帝一网络网站建设专家google关键词挖掘工具
  • 网站设计建设合同是如何做营销策划方案
  • app拉新seo工作是什么意思
  • iis5.1新建网站seo有哪些经典的案例
  • 上海商场网站开发排名优化方法
  • 微盟商户助手重庆店铺整站优化
  • 网站的关键词库免费b站软件下载
  • 仿站工具下载后咋做网站广州百度推广开户
  • 微信电脑网站是什么原因seo技术服务外包
  • 网站顶部地图代码怎么做百度seo排名点击软件
  • 怎样注册网站做销售一键免费创建论坛网站
  • 手机版怎么做微电影网站手机百度最新正版下载
  • 法律垂直问答网站怎样做企业网站的域名是该企业的
  • 制作一个网站步骤排版怎样注册个人网站
  • 建设钓鱼网站网站点击率查询
  • 安防网站模板世界足球排名
  • 网站里面嵌入的地图是怎么做的广州线下培训机构停课
  • b站推出的短视频app哪个好排名优化推广
  • 个人网站可以做论坛吗网站推广经验
  • 怎么用易语言做网站怎样制作网页新手自学入门
  • 哪些网站可以做外部锚文本网站空间租用