파이프

파이프 (Pipe)

단방향 파이프를 구현하는 한 쌍의 채널이에요. 쓰기 가능한 싱크 채널(sink)과 읽기 가능한 소스 채널(source)로 구성됩니다.

출처: Java API Reference

본문

Pipe는 단방향 파이프를 구현하는 한 쌍의 채널을 나타내요. 파이프는 두 개의 채널로 구성됩니다.

  • 싱크 채널(sink) — 쓰기 가능한 채널.
  • 소스 채널(source) — 읽기 가능한 채널.
public abstract class Pipe extends Object

싱크 채널에 쓴 바이트는 소스 채널에서 정확히 쓰인 순서대로 읽을 수 있어요. 파이프에 바이트를 쓰는 스레드가 다른 스레드가 그 바이트를 읽을 때까지 블록될지는 시스템에 의존하며 명세에 정의되어 있지 않습니다.

public abstract Pipe.SourceChannel source()
public abstract Pipe.SinkChannel sink()
public static Pipe open() throws IOException
  • source() — 소스(읽기) 채널을 반환해요.
  • sink() — 싱크(쓰기) 채널을 반환해요.
  • open() — 새 파이프를 만들어요.

많은 구현이 싱크와 소스 채널 사이에 일정량의 바이트를 버퍼링하지만, 그런 버퍼링을 가정해서는 안 됩니다. 프로세스 내 스레드 간 단방향 데이터 전달에 사용돼요.

더 알아보기 (Learn more)