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

做音乐网站建设的开发平台百度指数官方版

做音乐网站建设的开发平台,百度指数官方版,如何不备案建网站,新网站如何被网站收录【前言】 众所周知,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/19485.html

相关文章:

  • 网站开发案例教程泰安做百度推广的公司
  • 网站建设公司的前景广告公司是做什么的
  • 个人备案网站可以做电影站吗互联网营销的优势
  • 威客网站开发在线网站排名工具
  • 化工产品东莞网站建设seo教学视频教程
  • 新万网站建设seo公司厦门
  • 青岛做外贸网站济南网络优化网站
  • 在工商局网站做年报要交费吗关键词搜索工具好站网
  • php动态网站开发实例教程云搜索app下载
  • 大鹏网站建设公司百度seo排名查询
  • 网站图片切换怎么做网络销售怎么做才能有业务
  • 怎样买空间做网站seo网站关键词优化方式
  • wordpress网站重定向学技术的培训学校
  • 南昌公司网站开发社群营销方案
  • 网页设计实验报告实验分析宁波seo推广推荐
  • 国贸附近网站建设seo推广方法
  • 安卓开发和网站开发国内十大搜索引擎
  • wordpress使用ossseo推广培训费用
  • 网上挣钱快的路子seo修改器
  • 佛山企业网站多少钱网站seo查询
  • 漂亮的蓝色网站做seo网页价格
  • wordpress 安装 权限设置seo怎么收费
  • 福州交通建设集团官方网站北京seo公司wyhseo
  • 广东汽车品牌网站建设解释seo网站推广
  • 网站建设支出账务处理百度资源搜索资源平台
  • 网站建设公司 石景山天堂网
  • 政府网站 建设app大量微信群推广代发广告
  • 张家港专业的网站制作公司百度推广后台
  • 最牛黑客做的白粉交易网站百度官网认证多少钱一年
  • 手机网站重要性微信小程序怎么制作自己的程序