我计划使用 Unix 命名管道 (mkfifo) 进行简单的多进程消息传递。一条消息将只是一行文本。
你会劝阻我吗?我应该期待什么障碍?
我注意到了这些限制:
- 在收到消息之前,发件人无法继续。
- 接收器被阻塞,直到有一些数据。当我们需要停止读取时,将需要非阻塞 IO。例如,另一个线程可能会要求这样做。
- 接收者可以在一次读取中获得许多消息。这些必须在退出前处理。
- 原子消息的最大长度限制为 4096 字节。这是 Linux 上的 PIPE_BUF 限制(参见 man 7 pipe)。
我将在 Python 中实现消息传递。但障碍普遍存在。