SelectableChannel 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
을 통해 멀티플렉싱할 수 있는 채널입니다 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
등록해야 합니다. 이 메서드는 선택기를 사용하여 채널의 등록을 나타내는 새 SelectionKey
개체를 반환합니다.
선택기로 등록되면 채널이 등록 취소될 때까지 등록된 상태로 유지됩니다. 여기에는 선택기에서 채널에 할당된 리소스를 할당 취소하는 작업이 포함됩니다.
채널은 직접 등록을 취소할 수 없습니다. 대신 등록을 나타내는 키를 취소해야 합니다. 선택기 다음 선택 작업 중에 채널의 등록을 취소하라는 키 요청을 취소합니다. 해당 메서드를 호출하여 키를 명시적으로 취소할 SelectionKey#cancel() cancel
수 있습니다. 채널의 메서드를 호출하거나 채널의 I/O 작업에서 차단된 스레드를 Channel#close close
중단하여 채널이 닫히면 모든 채널 키가 암시적으로 취소됩니다.
선택기 자체가 닫혀 있으면 채널이 등록 취소되고 등록을 나타내는 키가 더 이상 지연되지 않고 무효화됩니다.
채널은 특정 선택기에서 최대 한 번 등록될 수 있습니다.
채널이 하나 이상의 선택기에 등록되었는지 여부는 메서드를 호출하여 #isRegistered isRegistered
확인할 수 있습니다.
선택 가능한 채널은 여러 동시 스레드에서 사용하기에 안전합니다.
"bm"><h2>차단 모드</h2>
선택 가능한 채널은 차단 모드 또는 비차단 모드입니다. 차단 모드에서는 채널에서 호출된 모든 I/O 작업이 완료될 때까지 차단됩니다. 비차단 모드에서는 I/O 작업이 차단되지 않으며 요청된 바이트보다 적은 바이트를 전송하거나 바이트를 전혀 전송하지 않을 수 있습니다. 선택 가능한 채널의 차단 모드는 해당 #isBlocking isBlocking
메서드를 호출하여 확인할 수 있습니다.
새로 만든 선택 가능한 채널은 항상 차단 모드입니다. 비차단 모드는 선택기 기반 멀티플렉싱과 함께 가장 유용합니다. 선택기에 등록하기 전에 채널을 비차단 모드로 전환해야 하며 등록이 취소될 때까지 차단 모드로 반환되지 않을 수 있습니다.
1.4에 추가되었습니다.
에 대한 java.nio.channels.SelectableChannel
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
SelectableChannel() |
이 클래스의 새 인스턴스를 초기화합니다. |
SelectableChannel(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
IsBlocking |
이 채널이 차단 모드에 있는지 여부를 나타냅니다. |
IsOpen |
이 채널이 열려 있으면 true를 반환합니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
IsRegistered |
이 채널이 하나 이상의 선택기로 등록되었는지 여부를 나타냅니다. |
JniIdentityHashCode |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
JniPeerMembers |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
PeerReference |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
Begin() |
무기한 차단할 수 있는 I/O 작업의 시작을 표시합니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
BlockingLock() |
및 |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Close() |
이 채널을 닫습니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
ConfigureBlocking(Boolean) |
이 채널의 차단 모드를 조정합니다. |
Dispose() |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
Dispose(Boolean) |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
End(Boolean) |
무기한 차단할 수 있는 I/O 작업의 끝을 표시합니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
ImplCloseChannel() |
이 채널을 닫습니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
KeyFor(Selector) |
지정된 선택기를 사용하여 채널의 등록을 나타내는 키를 검색합니다. |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Provider() |
이 채널을 만든 공급자를 반환합니다. |
Register(Selector, Operations, Object) |
이 채널을 지정된 선택기로 등록하고 선택 키를 반환합니다. |
Register(Selector, Operations) |
이 채널을 지정된 선택기로 등록하고 선택 키를 반환합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
ToArray<T>() |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
ValidOps() |
이 채널의 지원되는 작업을 식별하는 작업 집합을 반환합니다. |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
IJavaPeerable.DisposeUnlessReferenced() |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
IJavaPeerable.Finalized() |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
IJavaPeerable.JniManagedPeerState |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
을 통해 멀티플렉싱할 수 있는 채널입니다 |
GetJniTypeName(IJavaPeerable) |
을 통해 멀티플렉싱할 수 있는 채널입니다 |