ThreadX包含允许线程间通信的消息队列。假设我有几个线程可以读取和写入队列。我是否必须同步访问这个队列(例如使用互斥)?
发布于 2015-04-06 22:00:08
任何ThreadX线程都可以向队列发送消息,任何线程都可以从队列接收消息。访问一个队列的线程数没有限制。来自微线程的访问已经由ThreadX与FIFO规则同步--线程按照挂起的顺序被恢复。但是,可以通过调用函数tx_queue_prioritize来更改顺序。
发布于 2019-10-10 10:09:28
不需要同步,消息通过FIFO的概念填充在缓冲区中。他们一直在排队,直到排满为止。您可以选择使用tx_queue_front_send api在队列前面发送消息。
使用tx_queue_receive时,可以指定等待消息的时间或时间,直到线程调度程序自动挂起线程,并在消息到达时立即恢复该线程。
而且,由于队列是公共资源,所以任何线程都可以访问队列。
https://stackoverflow.com/questions/24292425
复制相似问题