AsynchronousChannelProvider — 비동기 채널을 위한 서비스 프로바이더 클래스

AsynchronousChannelProvider — 비동기 채널을 위한 서비스 프로바이더 클래스

AsynchronousChannelProvider는 비동기 채널(asynchronous channel)을 위한 서비스 프로바이더 클래스예요. 비동기 채널 프로바이더는 인자가 없는 생성자를 가지며 아래에 명시된 추상 메서드를 구현하는 이 클래스의 구체적 하위 클래스예요. JVM의 특정 호출은 provider 메서드가 반환하는 단일 시스템 차원의 기본 프로바이더 인스턴스를 유지해요.

출처: Java API Reference

본문

public abstract class AsynchronousChannelProvider extends Object

비동기 채널을 위한 서비스 프로바이더 클래스예요. 비동기 채널 프로바이더는 인자가 없는 생성자를 가지며 아래에 명시된 추상 메서드를 구현하는 이 클래스의 구체적 하위 클래스예요. 이 클래스의 모든 메서드는 여러 동시 스레드가 안전하게 사용할 수 있어요. Java 1.7부터 사용할 수 있어요.

생성자

protected AsynchronousChannelProvider()

이 클래스의 새 인스턴스를 초기화해요.

예외: SecurityException — 보안 관리자가 설치되어 있고 RuntimePermission("asynchronousChannelProvider")를 거부하는 경우

메서드 요약

수식자와 타입 메서드 설명
abstract AsynchronousChannelGroup openAsynchronousChannelGroup(int nThreads, ThreadFactory threadFactory) 고정 스레드 풀로 새 비동기 채널 그룹을 구성해요.
abstract AsynchronousChannelGroup openAsynchronousChannelGroup(ExecutorService executor, int initialSize) 주어진 스레드 풀로 새 비동기 채널 그룹을 구성해요.
abstract AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(AsynchronousChannelGroup group) 비동기 서버 소켓 채널을 열어요.
abstract AsynchronousSocketChannel openAsynchronousSocketChannel(AsynchronousChannelGroup group) 비동기 소켓 채널을 열어요.
static AsynchronousChannelProvider provider() JVM 호출에 대한 시스템 차원의 기본 비동기 채널 프로바이더를 반환해요.

provider

public static AsynchronousChannelProvider provider()

JVM 호출에 대한 시스템 차원의 기본 비동기 채널 프로바이더를 반환해요. 이 메서드의 첫 호출은 다음과 같이 기본 프로바이더 객체를 찾아요:

  1. 시스템 속성 java.nio.channels.spi.AsynchronousChannelProvider가 정의되어 있으면 그 값을 구체적 프로바이더 클래스의 정규화된 이름으로 취급해요. 클래스가 로드되고 인스턴스화되며, 이 과정이 실패하면 지정되지 않은 오류가 발생해요.
  2. 시스템 클래스 로더에 보이는 jar 파일에 프로바이더 클래스가 설치되어 있고, 그 jar 파일의 META-INF/services 리소스 디렉터리에 java.nio.channels.spi.AsynchronousChannelProvider라는 프로바이더 구성 파일이 있으면, 그 파일에 명시된 첫 번째 클래스 이름을 사용해요.
  3. 위의 어떤 방법으로도 프로바이더가 지정되지 않았다면 시스템 기본 프로바이더 클래스를 인스턴스화해 결과를 반환해요.

이후 호출은 첫 호출이 반환한 프로바이더를 반환해요.

openAsynchronousChannelGroup

public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(int nThreads, ThreadFactory threadFactory) throws IOException

고정 스레드 풀로 새 비동기 채널 그룹을 구성해요.

매개변수: nThreads — 풀의 스레드 수, threadFactory — 새 스레드를 만들 때 사용할 팩토리

반환값: 새 비동기 채널 그룹

예외: IllegalArgumentExceptionnThreads <= 0인 경우, IOException — I/O 오류가 발생한 경우

참고: AsynchronousChannelGroup.withFixedThreadPool(int, java.util.concurrent.ThreadFactory)

openAsynchronousChannelGroup

public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(ExecutorService executor, int initialSize) throws IOException

주어진 스레드 풀로 새 비동기 채널 그룹을 구성해요.

매개변수: executor — 스레드 풀, initialSize>=0 값 또는 구현별 기본값을 위한 음수 값

예외: IOException — I/O 오류가 발생한 경우

참고: AsynchronousChannelGroup.withCachedThreadPool(java.util.concurrent.ExecutorService, int)

openAsynchronousServerSocketChannel

public abstract AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(AsynchronousChannelGroup group) throws IOException

비동기 서버 소켓 채널을 열어요.

매개변수: group — 채널이 바인딩될 그룹, 또는 기본 그룹에 바인딩하려면 null

예외: IllegalChannelGroupException — 그룹을 만든 프로바이더가 이 프로바이더와 다른 경우, ShutdownChannelGroupException — 그룹이 종료된 경우, IOException — I/O 오류가 발생한 경우

openAsynchronousSocketChannel

public abstract AsynchronousSocketChannel openAsynchronousSocketChannel(AsynchronousChannelGroup group) throws IOException

비동기 소켓 채널을 열어요.

매개변수: group — 채널이 바인딩될 그룹, 또는 기본 그룹에 바인딩하려면 null

예외: IllegalChannelGroupException, ShutdownChannelGroupException, IOException

더 알아보기 (Learn more)

Java 공식 API