Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 并发访问threadx队列_Multithreading_Thread Safety_Threadx - Fatal编程技术网

Multithreading 并发访问threadx队列

Multithreading 并发访问threadx队列,multithreading,thread-safety,threadx,Multithreading,Thread Safety,Threadx,ThreadX包含允许线程间通信的消息队列。假设我有几个线程对队列进行读写操作。是否必须同步对此队列的访问(例如使用互斥锁)?任何ThreadX线程都可以向队列发送消息,任何线程都可以从队列接收消息。一个队列可以访问的线程数没有限制。来自多线程的访问已经由ThreadX与FIFO规程同步——线程按照暂停的顺序恢复。但是,可以通过调用函数tx\u queue\u priority来更改顺序。无需同步,消息通过FIFO概念填充到缓冲区中。他们不停地排队,直到排满为止。您可以使用tx\u queue\

ThreadX包含允许线程间通信的消息队列。假设我有几个线程对队列进行读写操作。是否必须同步对此队列的访问(例如使用互斥锁)?

任何ThreadX线程都可以向队列发送消息,任何线程都可以从队列接收消息。一个队列可以访问的线程数没有限制。来自多线程的访问已经由ThreadX与FIFO规程同步——线程按照暂停的顺序恢复。但是,可以通过调用函数
tx\u queue\u priority

来更改顺序。无需同步,消息通过FIFO概念填充到缓冲区中。他们不停地排队,直到排满为止。您可以使用
tx\u queue\u front\u send
api选择在队列前面发送消息

当您使用
tx\u queue\u receive
时,您可以指定等待消息的节拍或时间,直到Threadx调度程序自动挂起线程,并在消息到达后立即恢复

由于队列是一种公共资源,任何线程都可以访问它