Java 7에서 NIO2를 사용 해본 적이 있는데 AsynchronousFileChannel
은 동기 FileChannel
형제와 같은 transferTo
메서드를 사용한다고 가정합니다.AsynchronousFileChannel에 대해 transferTo와 동일한 기능이 있습니까?
로컬 파일과 열린 TCP 소켓간에 제로 사본 전송을 수행하려고합니다. 나는 단지 FileChannel
을 만들고, AsynchronousSocketChannel
을 마지막 arg로 사용하여 transferTo
을 호출하려고 시도했지만, 비동기 소켓 버전은 WritableByteChannel
이 아니기 때문에 Java가 가지지 않습니다.
옵션으로 배제 된 사람은 DMA를 활용하는 AsynchronousSocketChannel
바이트로 파이프를 연결할 수있는 해결 방법이나 외부 라이브러리를 알고 있습니까? (사용자 공간에서 버퍼를 사용하지 않음)
비동기 파일 채널 -> 비동기 소켓 채널에서 데이터를 이동하는 작업은 다른 스레드에서도 'transferTo'로 피할 수있는 중간 바이트 버퍼를 생성하는 것과 관련이 있습니다. transferTo의 동시성이 들어 가지 않습니다. [이 토론] (http://mail.openjdk.java.net/pipermail/nio-dev/2011-December.txt)은 일반적인 관심사는 있지만 구체적인 일정은 없음을 제안합니다. 어쩌면 직접 요리 할 수 있는지 알게 될 것입니다 ... –
@ChrisMowforth Javadoc에서 가능성이 있다고 주장되는 커널 전용 구현은 적어도 Windows에서는 Solars가 존재하지 않습니다 , 리눅스 구현에는 소스 코드 액세스 권한이 있습니다. 이것은 직접 바이트 버퍼와 루프를 사용하여 직접 구현됩니다. 그것은 그것도 제공하는 demotivated 것입니다. – EJP