На Linux, у меня есть именованный канал, созданный в оболочке с использованием mkfifo /tmp/test
.
. Я хотел бы использовать его для чтения asyn c, поэтому в качестве первого шага я его открываю используя AsynchronousFileChannel
:
java.nio.channels.AsynchronousFileChannel.open(
java.nio.file.Paths.get("/tmp/test"),
java.nio.file.StandardOpenOption.READ)
)
Однако вызов зависает:
"main" #1 prio=5 os_prio=0 cpu=1830.11ms elapsed=686.74s tid=0x00007f444c016800 nid=0x6ae8 runnable [0x00007f44527c2000]
java.lang.Thread.State: RUNNABLE
at sun.nio.fs.UnixNativeDispatcher.open0(java.base@11.0.7/Native Method)
at sun.nio.fs.UnixNativeDispatcher.open(java.base@11.0.7/UnixNativeDispatcher.java:71)
at sun.nio.fs.UnixChannelFactory.open(java.base@11.0.7/UnixChannelFactory.java:267)
at sun.nio.fs.UnixChannelFactory.newAsynchronousFileChannel(java.base@11.0.7/UnixChannelFactory.java:180)
at sun.nio.fs.UnixFileSystemProvider.newAsynchronousFileChannel(java.base@11.0.7/UnixFileSystemProvider.java:199)
at java.nio.channels.AsynchronousFileChannel.open(java.base@11.0.7/AsynchronousFileChannel.java:253)
at java.nio.channels.AsynchronousFileChannel.open(java.base@11.0.7/AsynchronousFileChannel.java:311)
Возможно ли в Java открыть именованный канал для асинхронных c операций чтения или записи?