JavaTM Platform
Standard Ed. 6

java.nio.channels.spi
클래스 AbstractSelector

java.lang.Object 
  상위를 확장 java.nio.channels.Selector 
      상위를 확장 java.nio.channels.spi.AbstractSelector


public abstract class AbstractSelector
extends Selector

셀렉터의 베이스 구현 클래스입니다.

이 클래스는, 선택 조작의 인터럽트의 구현에 필요한 저레벨의 기구를 캡슐화합니다. 구상 셀렉터 클래스는, 무기한으로 블록 될 가능성이 있는 입출력 조작의 호출전에 begin 메소드를, 호출 후에 end 메소드를 각각 호출할 필요가 있습니다. 덧붙여end 메소드가 반드시 불려 가도록(듯이),try ... finally 블록내에서 이러한 메소드를 사용하도록 해 주세요.

 try {
     begin();
     // Perform blocking I/O operation here
     ...
 } finally {
     end();
 }

이 클래스는, 셀렉터가 삭제된 키 세트를 관리하는 메소드나, 채널의 키 세트로부터 키를 삭제하는 메소드도 정의합니다. 또, 실제로 채널을 등록할 때에 선택 가능 채널의 register 메소드에 의해 불려 가는 register 메소드를 선언합니다.

도입된 버젼:
1.4

생성자 의 개요
protected AbstractSelector (SelectorProvider  provider)
          이 클래스의 새로운 인스턴스를 초기화합니다.
 
메소드의 개요
protected  void begin ()
          무기한으로 블록 되는 입출력 조작의 개시를 마크 합니다.
protected  Set <SelectionKey > cancelledKeys ()
          이 셀렉터가 삭제된 키 세트를 가져옵니다.
 void close ()
          이 셀렉터를 클로즈 합니다.
protected  void deregister (AbstractSelectionKey  key)
          채널의 키 세트로부터 지정된 키를 삭제합니다.
protected  void end ()
          무기한으로 블록 되는 입출력 조작의 종료를 마크 합니다.
protected abstract  void implCloseSelector ()
          이 셀렉터를 클로즈 합니다.
 boolean isOpen ()
          이 셀렉터 상태가 오픈일지 어떨지를 판단합니다.
 SelectorProvider provider ()
          이 채널의 작성원프로바이더를 돌려줍니다.
protected abstract  SelectionKey register (AbstractSelectableChannel  ch, int ops, Object  att)
          이 셀렉터로 지정된 채널을 등록합니다.
 
클래스 java.nio.channels. Selector 로부터 상속된 메소드
keys , open , select , select , selectedKeys , selectNow , wakeup
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

AbstractSelector

protected AbstractSelector(SelectorProvider  provider)
이 클래스의 새로운 인스턴스를 초기화합니다.

메소드의 상세

close

public final void close()
                 throws IOException 
이 셀렉터를 클로즈 합니다.

이 셀렉터가 벌써 클로즈 하고 있는 경우, 이 메소드는 즉시 종료합니다. 그렇지 않은 경우는, 이 셀렉터를 클로즈 대상으로 해 마크 한 뒤, 클로즈 조작을 완료하기 위해서 implCloseSelector 메소드를 호출합니다.

정의:
클래스 Selector 내의 close
예외:
IOException - 입출력 에러가 발생했을 경우

implCloseSelector

protected abstract void implCloseSelector()
                                   throws IOException 
이 셀렉터를 클로즈 합니다.

이 메소드는, 셀렉터의 클로즈 처리를 실제로 실행하기 위해서 close 메소드에 의해 불려 갑니다. 이 메소드는, 셀렉터가 아직 클로즈 되지 않고, 향후 불려 갈 가능성이 없는 경우에 한정해 불려 갑니다.

이 메소드의 구현은, 이 셀렉터에 대한 선택 조작으로 블록 되고 있는 것 외의 thread를,wakeup 메소드를 호출했을 경우와 같이 즉시 종료할 필요가 있습니다.

예외:
IOException - 셀렉터의 클로즈중에 입출력 에러가 발생했을 경우

isOpen

public final boolean isOpen()
클래스 Selector 의 기술:
이 셀렉터 상태가 오픈일지 어떨지를 판단합니다.

정의:
클래스 Selector 내의 isOpen
반환값:
이 셀렉터가 오픈인 경우에 한해 true

provider

public final SelectorProvider  provider()
이 채널의 작성원프로바이더를 돌려줍니다.

정의:
클래스 Selector 내의 provider
반환값:
이 채널의 작성원프로바이더

cancelledKeys

protected final Set <SelectionKey > cancelledKeys()
이 셀렉터가 삭제된 키 세트를 가져옵니다.

이 세트는, 동기화 되고 있는 경우에 한정해 사용 가능합니다.

반환값:
삭제된 키 세트

register

protected abstract SelectionKey  register(AbstractSelectableChannel  ch,
                                         int ops,
                                         Object  att)
이 셀렉터로 지정된 채널을 등록합니다.

이 메소드는, 이 셀렉터에 실제로 채널을 등록하기 위해서, 채널의 register 메소드에 의해 불려 갑니다.

파라미터:
ch - 등록되는 채널
ops - 유효한 초기 대상 세트
att - 결과적으로 얻을 수 있는 키의 초기 첨부
반환값:
이 셀렉터로 지정된 채널이 등록되어 있는 것을 나타내는 새로운 키

deregister

protected final void deregister(AbstractSelectionKey  key)
채널의 키 세트로부터 지정된 키를 삭제합니다.

셀렉터는, 등록 해제하는 채널 마다 이 메소드를 호출할 필요가 있습니다.

파라미터:
key - 삭제되는 선택 키

begin

protected final void begin()
무기한으로 블록 되는 입출력 조작의 개시를 마크 합니다.

이 셀렉터의 인터럽트를 구현하려면 ,상기에 나타낸 try ... finally 블록을 사용해, 이 메소드와 end 메소드를 페어로 호출할 필요가 있습니다.

이 메소드를 호출하면(자), 셀렉터에 대한 입출력 조작으로 블록 되고 있는 thread의 interrupt 메소드가 불려 갔을 경우에, 셀렉터의 wakeup 메소드가 불려 갑니다.


end

protected final void end()
무기한으로 블록 되는 입출력 조작의 종료를 마크 합니다.

이 셀렉터의 인터럽트를 구현하려면 ,상기에 나타낸 try ... finally 블록을 사용해, 이 메소드와 begin 메소드를 페어로 호출할 필요가 있습니다.


JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.