Share via


IAsynchronousChannel 인터페이스

정의

비동기 I/O 작업을 지원하는 채널입니다.

[Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)]
public interface IAsynchronousChannel : IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)>]
type IAsynchronousChannel = interface
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
파생
특성
구현

설명

비동기 I/O 작업을 지원하는 채널입니다. 비동기 I/O 작업은 일반적으로 다음 두 가지 형식 중 하나를 사용합니다.

<ol><li>

{@link Future}&lt;V&gt; <em>operation</em>(<em>...</em>)

</li li><>

void <em>operation</em>(<em>...</em> A attachment, {@link
              CompletionHandler}&lt;V,? super A&gt; handler)

</li></ol>

여기서 operation 은 I/O 작업의 이름(예: 읽기 또는 쓰기)이고 , V 는 I/O 작업의 결과 형식이고, A 는 결과를 사용할 때 컨텍스트를 제공하기 위해 I/O 작업에 연결된 개체의 형식입니다. 첨부 파일은 em state-less</em>CompletionHandler을 <사용하여 많은 I/O 작업의 결과를 사용하는 경우에 중요합니다.>

첫 번째 양식에서 인터페이스에서 정의한 Future Future 메서드를 사용하여 작업이 완료된 경우 검사 완료될 때까지 기다렸다가 결과를 검색할 수 있습니다. 두 번째 형식 CompletionHandler 에서 는 I/O 작업이 완료되거나 실패할 때 I/O 작업의 결과를 사용하도록 호출됩니다.

이 인터페이스를 구현하는 채널은 <>비동기적으로 근접</em>입니다. 채널에서 I/O 작업이 미해결 상태이고 채널의 #close close 메서드가 호출되면 예외AsynchronousCloseException와 함께 I/O 작업이 실패합니다.

비동기 채널은 여러 동시 스레드에서 사용하기에 안전합니다. 일부 채널 구현은 동시 읽기 및 쓰기를 지원할 수 있지만 한 번에 두 개 이상의 읽기 및 쓰기 작업이 미해결되는 것을 허용하지 않을 수 있습니다.

<h2>취소</h2>

인터페이스는 Future 실행을 취소하는 메서드를 정의합니다 Future#cancel cancel . 이렇게 하면 I/O 작업 결과를 기다리는 모든 스레드가 를 throw java.util.concurrent.CancellationException합니다. 기본 I/O 작업을 취소할 수 있는지 여부는 매우 구체적인 구현이므로 지정되지 않습니다. 취소가 채널 또는 채널이 연결된 엔터티를 일관성 없는 상태로 유지하면 채널은 취소된 작업과 유사한 I/O 작업을 더 이상 시작하지 못하게 하는 특정 em 오류 상태</em> 구현<>에 배치됩니다. 예를 들어 읽기 작업이 취소되었지만 구현에서 채널에서 바이트를 읽지 않았다고 보장할 수 없는 경우 채널을 오류 상태로 만듭니다. 작업을 시작 read 하려고 하면 지정되지 않은 런타임 예외가 throw됩니다. 마찬가지로 쓰기 작업이 취소되었지만 구현에서 바이트가 채널에 기록되지 않았다고 보장할 수 없는 경우 후속 시작 write 시도는 지정되지 않은 런타임 예외와 함께 실패합니다.

메서드가 Future#cancel cancel 로 설정된 매개 변수를 사용하여 mayInterruptIfRunningtrue 호출되는 경우 채널을 닫아 I/O 작업이 중단될 수 있습니다. 이 경우 I/O 작업 throw CancellationException 결과 및 채널에서 미해결된 다른 I/O 작업의 결과를 기다리는 모든 스레드는 예외 AsynchronousCloseException를 제외하고 완료됩니다.

메서드를 cancel 호출하여 읽기 또는 쓰기 작업을 취소하는 경우 I/O 작업에 사용되는 모든 버퍼를 삭제하거나 채널이 열려 있는 동안 버퍼에 액세스하지 않도록 주의하는 것이 좋습니다.

1.7에 추가되었습니다.

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

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

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
IsOpen

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

(다음에서 상속됨 IChannel)
JniIdentityHashCode

java.lang.System.identityHashCode() 래핑된 instance 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Close()

이 채널을 닫습니다.

Disposed()

instance 삭제되었을 때 호출됩니다.

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

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 것도 수행하지 않습니다.

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

instance 완료되면 호출됩니다.

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

에서 반환 JniIdentityHashCode된 값을 설정합니다.

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

비동기 I/O 작업을 지원하는 채널입니다.

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

에서 반환 PeerReference된 값을 설정합니다.

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

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

비동기 I/O 작업을 지원하는 채널입니다.

GetJniTypeName(IJavaPeerable)

비동기 I/O 작업을 지원하는 채널입니다.

적용 대상