基于ROS的多线程通信和话题发布
1、什么是线程,什么是进程?
就我看来进程就像一个每个不同的应用程序,比如QQ ,而线程就相当于各个进程之中再同时进行的操作,比如QQ同时开多个窗口和多人聊天等。具体可以参见深入理解线程和进程
2、线程之间如何同步和通信?
在学习《嵌入式系统及其原理》时曾接触过不同任务之间的关系,比如同步,独立和通信等,与此类似,线程之间也有这几种关系,线程之间可以相互独立的运行,也可以根据时序关系,传送数据通信等,而在此之间就需要用到信号量,消息队列,消息邮箱等来实现线程之间的通信。
3、如何创建线程
pthread_t thread1, thread2;
void *retval;
4、代码如下
#include <ros/ros.h>
#include <test_project/Titanic.h>
#include <iostream>
#include <pthread.h>
#include <thread>
#include <semaphore.h>
#include <errno.h>
using namespace std;
test_project::Titanic ship;
sem_t signal_jump,signal_live;
pthread_t thread1, thread2;
void *retval;
void *Jack_thread(void *arg)
{
int count = 0,nums=4;