【问题标题】:Is msgsnd() thread- and/or process-safe?msgsnd() 线程和/或进程安全吗?
【发布时间】:2010-11-12 15:13:28
【问题描述】:

如果两个 pthread 在“同一”时间调用 msgsnd() 函数,将消息发布到同一个消息队列,会发生什么?

如果两个进程做同样的事情怎么办?它们是线程还是进程有关系吗?

对 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 特别感兴趣

【问题讨论】:

    标签: linux multithreading message-queue


    【解决方案1】:

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

    线程安全函数是一个可以从多个线程同时被安全调用的函数(即,无论是否被调用,它都会提供相同的结果。

    POSIX.1-2001 和 POSIX.1-2008 要求标准中指定的所有函数都必须是线程安全的......

    msgsnd 是 POSIX 定义的函数之一,不排除在此要求之外。不管是两个线程还是两个进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      相关资源
      最近更新 更多