我有一个问题,我必须从管道读取流数据,用 C 编写的应用程序将数据写入管道。另一个用 java 编写的应用程序必须从这个 linux 管道中读取。这个java程序是一个多线程程序,当其他程序向它写入数据时,从该管道读取数据。当数据被添加到管道队列时,它应该不断地从管道中读取。任何建议都会有所帮助。
试图解决的问题是:
目前,一个应用程序(在 C 中)实时连续地创建文件到一个目录,另一个应用程序(在 java 中)读取和处理这些文件。在这种方法中,由于从不同目录中写入和读取文件,会有一些时间延迟,希望使用 Linux 管道可以帮助减少时间延迟。有没有其他更好的方法来处理连续的大量数据?
我在 google 上搜索了一些示例示例,以使用多线程 java 程序读取 fifo。我找不到任何合适的示例,如果您遇到任何此类示例,请分享。
最佳答案
如果你创建一个 FIFO 文件,你实际上不会写入磁盘,它只是文件系统中的一个文件,以便于访问。您可以在 fifo(7) (man 7 fifo
) 的手册页上阅读有关 FIFO 和 mkfifo(1) (man 1 mkfifo
) 的信息命令在 C 中制作它们。
关于java - 如何使用java读取linux中的命名管道(FIFO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524882/