【问题标题】:Two unix processes write on the same TCP socket in the same time两个 unix 进程同时在同一个 TCP 套接字上写入
【发布时间】:2017-09-07 10:15:19
【问题描述】:

两个 unix 进程可以在 TCP 套接字上写入(也就是说,有一种方法可以让操作系统安排每个进程完成写入)? 如果是这样,会出现什么问题?

【问题讨论】:

  • 是的。括号中部分的含义使我难以理解。写入和发送是原子的,但每个进程的发送可以任意交错。

标签: sockets process multiprocessing read-write tcpsocket


【解决方案1】:

嗯...是的...两个 unix 进程可以write 到单个(共享)TCP 套接字...但我认为这是一个设计缺陷。

write 可能是原子的,但它可能是部分的,导致在write 调用之间写入交错数据。

将需要一个应用程序级同步元素来规避此问题。

这很可能会增加复杂性而不会增加价值。

【讨论】:

    最近更新 更多