2011-11-23 87 views

回答

5

是的,它是有道理的。由於它們在不同的線程中,因此它們不會彼此阻塞。

+0

說他們是否「阻塞」對方並不那麼容易 - 這取決於套接字後面的_implementation_,甚至在硬件上(思考:全雙工/半雙工網絡接口)。同意,從系統調用接口方面來看,事實並非如此。 –

1

只要有一個作者和一個讀者線程,它就是有意義的。如果您有多個讀取器線程,則需要鎖定讀取,如果您有多個寫入器線程,則必須鎖定寫入。

+0

在多讀者或多寫者的情況下,除了鎖定之外,還需要爲套接字的另一端清楚地定義消息邊界,以便理解這一切。並且請注意,send()和recv()不保證將您告訴他們的數據量傳輸到。 –