Shell 命名管道(fifo)有多贵?

Shell 命名管道(fifo)有多贵?,shell,synchronization,named-pipes,children,Shell,Synchronization,Named Pipes,Children,我产生了许多进程,我需要每个进程等待输入。为每个进程创建命名管道是个好主意吗?或者我应该考虑其他的同步方式吗? 我确信,为每个单独的进程创建一个普通文件是非常糟糕的,因为硬盘会减慢进程的速度。但是,命名管道在这方面如何比较呢?它们是和信号一样快还是和普通文件一样慢?命名管道只是内存缓冲区的文件系统条目,因此访问速度应该足够快 在您证明它是一个瓶颈之前,我不会避免使用真正的文件。由于操作系统将缓冲对内存中文件的少量写入,直到尝试读取文件或缓冲区填满为止,因此您可能不会因为硬盘驱动器的速度而遇到任何

我产生了许多进程,我需要每个进程等待输入。为每个进程创建命名管道是个好主意吗?或者我应该考虑其他的同步方式吗?


我确信,为每个单独的进程创建一个普通文件是非常糟糕的,因为硬盘会减慢进程的速度。但是,命名管道在这方面如何比较呢?它们是和信号一样快还是和普通文件一样慢?

命名管道只是内存缓冲区的文件系统条目,因此访问速度应该足够快


在您证明它是一个瓶颈之前,我不会避免使用真正的文件。由于操作系统将缓冲对内存中文件的少量写入,直到尝试读取文件或缓冲区填满为止,因此您可能不会因为硬盘驱动器的速度而遇到任何I/O延迟。

如果读卡器太慢,您的写入线程可以停止。但这可能是你想要的

如果您认为磁盘写入可能很慢,那么可以为命名管道使用tmpfs(RAM中的文件系统)。(这只会加速对管道名称的访问)无论如何,大多数磁盘操作都是缓存的

也许你可以考虑D-总线来设计(不应该更快或更慢):