2

好吧,基本上我有 3 个线程。

他们每个人都使用一个函数,该函数在内部使用特定套接字上的 send() (我们称之为 S)。这是一个小设计:

http://i.imgur.com/5N744.png

我将如何以这种方式同步 S 套接字,以便在队列中一个接一个地调用 send() 而不是同时访问套接字的线程?

4

1 回答 1

4

首先,为什么没有要发送的实际数据队列,以及一个专门的 IO 线程从中弹出项目并写入套接字?

然后,如果您使用常规阻塞套接字语义,您可以同时从所有三个线程写入同一个套接字 - 内核将在系统调用级别提供所需的锁定。

于 2013-01-15T16:03:48.320 回答