我们可以在同一个套接字上从一个线程调用发送并从另一个线程调用接收吗?我们可以在同一个套接字上从不同的线程并行调用多个发送吗?我知道一个好的设计应该避免这种情况......
我知道一个好的设计应该避免这种情况,但我不清楚这些系统 API 将如何表现。我找不到关于此问题的良好文档。
任何方向的指示都会有帮助。
我看不出并行接收如何能完成任何事情。如果您有一条 3 字节的消息,那么 1 个线程可以获取前 2 个字节,另一个线程可以获取最后一个字节,但您无法分辨哪个是哪个。除非您的消息只有一个字节长,否则您无法通过多个线程接收来可靠地完成任何事情。
则多次发送 可能会 有效,但我不确定。有可能一个消息会覆盖另一个消息。这样做肯定不会带来任何性能上的好处。
如果需要多个线程发送,则应实现同步消息队列。让一个线程执行实际发送操作,从队列中读取消息,让其他线程将整个消息入队。接收操作也同样有效,但接收线程必须知道消息的格式,以便能够正确地反序列化它们。