两个线程都需要读取同一个消息队列的内容,应该用哪个读取函数?
目前如果两个线程都用
rt_mq_recv (rt_mq_t mq, void *buffer, rt_size_t size, rt_int32_t timeout)
优先级高的线程读取到了消息,就会导致另一个线程读不到消息。
像freertos有以下这两个读取函数
//从队列中取出消息,并删除该消息
xQueueReceive(xQueue,&item,pOrtMAX DELAY);
//从队列中取出消息,但不删除队列中的该消息
xQueuePeek(xQueue, &item, portMAX DELAY);
这样好麻烦啊,又占用内存