Share via


SelectableChannel 클래스

정의

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

[Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)]
public abstract class SelectableChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)>]
type SelectableChannel = class
    inherit AbstractInterruptibleChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
상속
파생
특성
구현

설명

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

선택기에서 사용하려면 먼저 메서드를 통해 #register(Selector,int,Object) register 이 클래스의 instance 등록해야 합니다. 이 메서드는 선택기를 사용하여 채널의 등록을 나타내는 새 SelectionKey 개체를 반환합니다.

선택기를 사용하여 등록되면 채널이 등록 취소될 때까지 등록된 상태로 유지 됩니다. 여기에는 선택기가 채널에 할당한 리소스를 할당 취소하는 작업이 포함됩니다.

채널은 직접 등록을 취소할 수 없습니다. 대신 등록을 나타내는 키를 취소해야 합니다. 선택기 다음 선택 작업 중에 채널이 등록 취소되도록 하는 키 요청을 취소합니다. 메서드를 호출 SelectionKey#cancel() cancel 하여 키를 명시적으로 취소할 수 있습니다. 채널의 모든 키는 메서드를 호출하거나 채널의 I/O 작업에서 차단된 스레드를 Channel#close close 중단하여 채널이 닫히면 암시적으로 취소됩니다.

선택기 자체가 닫혀 있으면 채널이 등록 취소되고 등록을 나타내는 키가 더 이상 지연되지 않고 무효화됩니다.

채널은 특정 선택기를 사용하여 최대 한 번 등록할 수 있습니다.

채널이 하나 이상의 선택기에 등록되었는지 여부는 메서드를 호출하여 #isRegistered isRegistered 확인할 수 있습니다.

선택 가능한 채널은 여러 동시 스레드에서 사용하기에 안전합니다.

"bm"><h2>차단 모드</h2>

선택 가능한 채널은 차단 모드 또는 비블로킹 모드 에 있습니다. 차단 모드에서는 채널에서 호출된 모든 I/O 작업이 완료될 때까지 차단됩니다. 비 차단 모드에서는 I/O 작업이 차단되지 않으며 요청된 바이트보다 적은 바이트를 전송하거나 바이트를 전혀 전송하지 않을 수 있습니다. 선택 가능한 채널의 차단 모드는 메서드 #isBlocking isBlocking 를 호출하여 확인할 수 있습니다.

새로 만든 선택 가능한 채널은 항상 차단 모드에 있습니다. 비차단 모드는 선택기 기반 멀티플렉싱과 함께 가장 유용합니다. 선택기에 등록하기 전에 채널을 비 차단 모드로 전환해야 하며 등록이 취소될 때까지 차단 모드로 반환되지 않을 수 있습니다.

1.4에 추가되었습니다.

에 대한 Java 설명서입니다 java.nio.channels.SelectableChannel.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

SelectableChannel()

이 클래스의 새 인스턴스를 초기화합니다.

SelectableChannel(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
IsBlocking

이 채널이 차단 모드에 있는지 여부를 나타냅니다.

IsOpen

이 채널이 열려 있으면 true를 반환합니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
IsRegistered

이 채널이 하나 이상의 선택기를 사용하여 등록되었는지 여부를 나타냅니다.

JniIdentityHashCode

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
JniPeerMembers

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

PeerReference

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

Begin()

무기한 차단할 수 있는 I/O 작업의 시작을 표시합니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
BlockingLock()

#register register 메서드가 동기화되는 개체를 #configureBlocking configureBlocking 검색합니다.

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Close()

이 채널을 닫습니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

이 채널의 차단 모드를 조정합니다.

Dispose()

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
Dispose(Boolean)

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
End(Boolean)

무기한 차단할 수 있는 I/O 작업의 끝을 표시합니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
ImplCloseChannel()

이 채널을 닫습니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
KeyFor(Selector)

지정된 선택기를 사용하여 채널의 등록을 나타내는 키를 검색합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Provider()

이 채널을 만든 공급자를 반환합니다.

Register(Selector, Operations)

지정된 선택기를 사용하여 이 채널을 등록하고 선택 키를 반환합니다.

Register(Selector, Operations, Object)

지정된 선택기를 사용하여 이 채널을 등록하고 선택 키를 반환합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
ToArray<T>()

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
ValidOps()

이 채널의 지원되는 작업을 식별하는 작업 집합을 반환합니다.

Wait()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

GetJniTypeName(IJavaPeerable)

를 통해 멀티플렉싱할 수 있는 채널입니다 Selector.

적용 대상