我产生了许多进程,我需要每个进程等待输入。为每个进程创建一个命名管道是一个好主意吗?还是我应该考虑其他同步方式?
我可以肯定地知道,为每个单独的进程创建一个普通文件将是非常糟糕的,因为这些进程会因硬盘速度而减慢。但是命名管道在这方面如何比较?它们像信号一样快,还是像普通文件一样慢?
最佳答案
命名管道只是内存缓冲区中的文件系统条目,因此访问应足够快。
除非您证明它是瓶颈,否则我不会避免使用真实文件。由于操作系统会尝试在内存中缓冲对文件的小写操作,直到尝试读取文件或缓冲区写满为止,由于硬盘的速度,您可能不会遇到任何I / O延迟。
关于shell - 命名管道(fifo)的价格是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25721631/