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