ROS实现一个节点同时发布订阅多个话题(C++版)

  如果想在一个节点同时发布订阅多个话题就要使用到多线程机制,在C++中如何使用多线程,在C++中开多线程模板已经有了介绍,就是下面这个:

#include<thread>

void listenThread() {
    
    
	// 线程1内容
}

void sendThread() {
    
    
	// 线程2内容
}

int main() {
    
     
    std::thread sendThreadObj(sendThread);
    std::thread listenThreadObj(listenThread);
    listenThreadObj.join();
    sendThreadObj.join();
    return 0;
}

  但是有一点需要注意的是,创建节点的涉及到一个主线程,如果想同时发布订阅是不能使用主线程的(也就是不能主线程发布订阅,再新建一个线程做另一个功能),必须在主线程之外重新创建两个线程操作发布订阅(原因可能是前者线程之间可能会互锁,反正功能实现不了)

猜你喜欢

转载自blog.csdn.net/gls_nuaa/article/details/132571369
今日推荐