Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
C 是否使用消息队列锁定_C_Linux_Message Queue - Fatal编程技术网

C 是否使用消息队列锁定

C 是否使用消息队列锁定,c,linux,message-queue,C,Linux,Message Queue,我正在尝试在Linux中使用消息队列,是否可以执行以下操作 进程1的消息队列名为1 生产者1和生产者2向没有锁定机制的人发送消息,可以吗?Sys V消息队列提供优先级,以便可以指定特定的队列收件人,并可以获取针对它的消息。毫无争议。队列读取器也可以访问任何消息,具体取决于msgrcv()中的mtype值。POSIX消息队列有点不同。通常,您可以使用sysv队列,而不必担心锁定资源。SYSV信号量队列和共享内存也有一些缺点。就像它们是内核持久性的一样 试试http://beej.us/guide/

我正在尝试在Linux中使用消息队列,是否可以执行以下操作

进程1的消息队列名为1


生产者1和生产者2向没有锁定机制的人发送消息,可以吗?

Sys V消息队列提供优先级,以便可以指定特定的队列收件人,并可以获取针对它的消息。毫无争议。队列读取器也可以访问任何消息,具体取决于
msgrcv()
中的mtype值。POSIX消息队列有点不同。通常,您可以使用sysv队列,而不必担心锁定资源。SYSV信号量队列和共享内存也有一些缺点。就像它们是内核持久性的一样


试试
http://beej.us/guide/bgipc/

一般来说,这取决于“锁”和“队列”的含义。严格来说,有一些CPU原子指令可以用来代替操作系统提供的自旋锁或线程同步原语。我指的是System V或POSIX消息队列和锁,比如说emaphoreThanks Jim,我想我也不需要POSIX队列的锁,请检查此链接,如果我错了,请告诉我。正如我所读到的,您的链接不是POSIX消息队列,而是套接字。您还可以围绕POSIX队列上的资源控制需求编写代码。只是在Sys V上实现更简单,IMO.POSIX消息队列也是内核持久性的。请参阅(持久性)下的man mq_概述:POSIX消息队列具有内核持久性:如果没有通过mq_unlink(3)删除,则消息队列将存在,直到系统关闭。