C++ 套接字上的并行读/写
与多个线程并行地在套接字(C++ 套接字上的并行读/写,c++,c,gcc,C++,C,Gcc,与多个线程并行地在套接字(SOCK\u STREAM)上写入和读取有意义吗?在Linux上。这些系统调用是否相互阻塞?是的,这很有意义。因为它们位于不同的线程中,所以不会相互阻塞。只要只有一个写入线程和一个读取线程,这是有意义的。如果有多个读卡器线程,则需要锁定读取;如果有多个写卡器线程,则必须锁定写入。在多读卡器或多写卡器的情况下,除了锁定之外,还需要为套接字的另一端明确定义消息边界,以了解所有内容。请注意,send()和recv()不能保证传输您告诉它们的数据量。要说它们是否相互“阻塞”并不
SOCK\u STREAM
)上写入和读取有意义吗?在Linux上。这些系统调用是否相互阻塞?是的,这很有意义。因为它们位于不同的线程中,所以不会相互阻塞。只要只有一个写入线程和一个读取线程,这是有意义的。如果有多个读卡器线程,则需要锁定读取;如果有多个写卡器线程,则必须锁定写入。在多读卡器或多写卡器的情况下,除了锁定之外,还需要为套接字的另一端明确定义消息边界,以了解所有内容。请注意,send()和recv()不能保证传输您告诉它们的数据量。要说它们是否相互“阻塞”并不容易——这取决于套接字背后的实现,甚至取决于硬件(想想:全/半双工网络接口)。同意,从系统调用接口的角度来看,他们没有。