4

2 つの pthread が "同時に" msgsnd() 関数を呼び出して、メッセージを同じメッセージ キューに投稿するとどうなりますか?

2 つのプロセスが同じことをするとどうなりますか? それらがスレッドであるかプロセスであるかは重要ですか?

特に Linux 2.6.15-2.5 に興味がある #1 SMP PREEMPT Tue Sep 19 10:56:25 CDT 2006 x86_64 x86_64 x86_64 GNU/Linux

4

1 に答える 1

8

pthreadsのman ページには、知りたいことが記載されています。

スレッドセーフな関数とは、複数のスレッドから同時に安全に呼び出すことができる (つまり、呼び出しの有無に関係なく同じ結果を返す) 関数です。

POSIX.1-2001 および POSIX.1-2008 では、標準で指定されているすべての関数がスレッドセーフである必要があります...

msgsndは POSIX で定義された関数の 1 つであり、この要件から除外されていません。2 スレッドか 2 プロセスかは関係ありません。

于 2009-07-21T14:00:02.693 に答える