2011-11-23 82 views

回答

5

是的,它是有道理的。由于它们在不同的线程中,因此它们不会彼此阻塞。

+0

说他们是否“阻塞”对方并不那么容易 - 这取决于套接字后面的_implementation_,甚至在硬件上(思考:全双工/半双工网络接口)。同意,从系统调用接口方面来看,事实并非如此。 –

1

只要有一个作者和一个读者线程,它就是有意义的。如果您有多个读取器线程,则需要锁定读取,如果您有多个写入器线程,则必须锁定写入。

+0

在多读者或多写者的情况下,除了锁定之外,还需要为套接字的另一端清楚地定义消息边界,以便理解这一切。并且请注意,send()和recv()不保证将您告诉他们的数据量传输到。 –