2009-07-21 350 views
4

如果两个pthreads在“相同”时间调用msgsnd()函数会发生什么情况,将消息发布到同一个消息队列?msgsnd()线程和/或进程安全吗?

如果两个进程执行相同的操作会怎样?如果它们是线程或进程,它们是否重要?

针对Linux特别感兴趣2.6.15-2.5#1 SMP PREEMPT星期二9月19日10点56分25秒CDT 2006年x86_64的x86_64的x86_64的GNU/Linux的

回答

8

man page for pthreads告诉你你想知道:

线程安全函数是一个可以安全地(即它将传递相同的结果,无论它是否同时)从一个线程同时调用的函数。

POSIX.1-2001与POSIX.1-2008要求标准中规定的所有功能应是线程安全的...

msgsnd是POSIX定义的功能中,并不排除从这个要求。不管它是两个线程还是两个进程都没关系。