分页: 1 / 1

mq_send和MsgSend的同步问题

发表于 : 周三 3月 02, 2011 11:01 pm
fanweik
请问论坛各位,
如果现在有N个线程同时调用mq_send或MsgSend向另一线程发送消息,我需要在这N个线程中在发送消息前加入同步代码吗?如下的伪代码所示,

Enter Crtical Section

mq_send(...)/MsgSend(...)

Leave Critical Section

谢谢

发表于 : 周日 3月 27, 2011 2:50 pm
xtang
教你一个办法,如何判断 "xx 函数是不是需要同步”。可以去QNX的文档,查你想要找的函数,在函数解说的最后会有一个"Safety"表,告诉你这个函数在哪里用是安全的。如果一个函数是Thread Safe的,就说明它不需要同步(可重入)。

所以mq_send是不需要同步的。

当然这只是就函数本身而言。如果你的程序里,比如有两个线程都会读写 mq_send()所发送的数据区,那你当然需要自行加同步保护...