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