当两个或多个线程想要访问它时,我是否必须向套接字添加锁?

时间:2012-03-18 11:02:08

标签: sockets

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

1 个答案:

答案 0 :(得分:0)

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

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

如果您一次发送的少量数据不会导致套接字阻塞,您可能希望提交给每个同时send() / write()呼叫的数据块连续到达在另一端。大概。你不能指望它。