2012-03-18 29 views
1

我从主进程中的accept函数中获取一个套接字,并且两个或多个线程可以从它发送数据。然后,当两个或多个线程想要并行发送数据时,套接字的访问必须是相互排斥的。我的问题是如果操作系统将锁定添加到系统底部的连接套接字。当两个或更多线程想要访问它时,我是否必须将锁添加到套接字?

+0

我不会知道答案,但您应该添加您感兴趣的操作系统以及您使用的库(可能甚至是什么语言) – abesto 2012-03-18 11:06:02

+0

对不起。操作系统是FreeBSD,库是POSIX套接字库(C语言)。谢谢。 – 2012-03-19 18:24:34

回答

0

既然你提到了accept(),我认为我们正在谈论流套接字。

您可以从同一个套接字上的多个线程或进程同时发送,但不能保证来自多个发件人的数据不会交错在一起。所以你可能不想这样做。

如果您一次发送少量数据,但不会导致套接字阻塞,您可能预期提交给每个同时调用的数据块会在另一端连续到达。大概。你不能指望它。

相关问题