我有一个问题,我必须从管道读取流数据,用C编写的应用程序会将数据写入该管道。用Java编写的另一个应用程序必须从此linux管道读取。此Java程序是一个多线程程序,用于在其他程序向其中写入数据时从该管道读取数据。并且应该不断从管道读取数据,因为数据已添加到管道队列中。任何建议都会有所帮助。
尝试解决的问题是:
当前,一个应用程序(用C语言编写)连续不断地实时创建文件到目录,而另一个应用程序(用Java语言编写)读取并处理这些文件。在这种方法中,由于要从不同目录中写入文件并从中读取文件,因此会存在一些时间延迟,使用Linux管道进行跳跃可以帮助减少该时间延迟。还有其他更好的方法来处理连续的大量数据吗?
我用谷歌搜索了一些示例示例,以使用多线程Java程序读取fifo。我找不到合适的示例,如果遇到任何此类示例,请分享。
答案 0 :(得分:1)
如果创建FIFO文件,则实际上不会写入磁盘,它只是文件系统中的一个文件,以使其易于访问。您可以在fifo(7)(man 7 fifo
)的手册页上阅读有关FIFO的信息,并可以在mkfifo(1)(man 1 mkfifo
)的手册中进行阅读,以获取在C中制作它们的命令。