Межпроцессное взаимодействие FIFO Java

Привет, я пытаюсь реализовать IPC на Java с помощью FIFO. Я создал FIFO с помощью

mkfifo temp

затем я попытался открыть и FileWriter с

BufferedWriter writeStream = new BufferedWriter(new FileWriter(writePipePath));

но он блокируется на этой линии.

Есть идеи, в чем может быть проблема?


person user2071938    schedule 05.11.2014    source источник
comment
Как выглядит ваш код чтения? Если у вас нет читалки, она должна блокироваться.   -  person Peter Lawrey    schedule 05.11.2014
comment
Большое спасибо, это так! У меня есть 2 канала для каждого приложения (один для отправки, один для получения). Но оба приложения хотели сначала открыть канал отправки.   -  person user2071938    schedule 05.11.2014
comment
Вы можете использовать Socket и ServerSocket, так как у него есть два потока (один входящий, один исходящий), которые будут очищены, когда программа существует, хотя у вас будет та же проблема;)   -  person Peter Lawrey    schedule 05.11.2014


Ответы (1)


Как вы можете прочитать на mkfifo странице руководства, открытие fifo будет блокироваться до тех пор, пока обе стороны открыты. FileWriter открывает именованный канал синхронно — т. е. он не вернется, пока канал также не будет открыт для чтения другим процессом или другим потоком.

person Guss    schedule 04.05.2020