当前位置: 首页 > 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.hrbkazy.com/news/32267.html

相关文章:

  • 广州兼职网网站建设新闻最新消息10条
  • 加强政府网站建设的总结济宁做网站的电话
  • 铜陵做网站的湖南企业seo优化首选
  • 益阳做网站优化网站排名工具
  • 昆明官渡区网站建设互联网营销策划是做什么的
  • 个人做网站 优帮云彼亿营销
  • 上海网站建设免费推荐谷歌浏览器官网入口
  • 惠州住房和城乡建设局网站艾滋病阻断药有哪些
  • 网络技术就业方向重庆公司seo
  • 汕尾网站设计google高级搜索
  • wordpress 轮播图自适应无线网络优化工程师
  • wordpress升级 没有ftp青岛网络优化厂家
  • 访问外国网站速度慢用html制作淘宝网页
  • 腾讯云wed服务器做网站bittorrentkitty磁力猫
  • 中国万维网官网域名注册网站100种找客户的方法
  • 赣州建设监督网站google搜索中文入口
  • 郑州专业做网站企业怎么制作微信小程序
  • 如何做流量网站google登录入口
  • 交易类网站做支付宝功能友情链接的获取途径有哪些
  • dw做网站的实用特效必应搜索引擎怎么样
  • 如何注册网站域名百度目前的推广方法
  • php做用户注册网站免费seo网站推广
  • 做片子 我们是认真的网站石家庄网站建设方案推广
  • 昌图网站推广seo优化专员招聘
  • 电脑QQ浮动窗口怎做电脑网站广州市运营推广公司
  • 网站开发制作全包企业站seo案例分析
  • 有哪些可以做策划方案的网站网络推广公司口碑
  • 武汉企业网站优化百度竞价排名背后的伦理问题
  • 不备案的网站很慢百度网盘电脑版
  • 网站开发和美工的区别百度热搜榜怎么打开