【发布时间】:2014-12-16 07:14:15
【问题描述】:
我正在尝试使用pthreads 在 C 中实现一个多线程程序,并希望在线程之间发送消息。
在网上阅读时,我遇到了两种方法。
一个是posix队列,它使用mq_receive、mq_send等函数和另一个方法msgrcv、msgsnd。
我还注意到在 mq_send 中,我们只能发送字符串,不能发送自定义的数据结构。有没有办法使用 mq_send 或替代函数发送不同的数据结构?
哪种方法最好用?什么情况下最好使用这些功能?
【问题讨论】:
-
如果您对这些感兴趣,我建议您尝试使用 Unix Domain Sockets。我发现 UDS 在 Linux 上运行得更好,并且还具有使用更类似于 TCP 和 UDP 的常用套接字 API 的优势。
标签: c pthreads message-queue