다음을 통해 공유


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>

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

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

이 인터페이스를 구현하는 채널은 <>비동기적으로 근접<합니다>. 채널에서 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 사용하여 메서드를 mayInterruptIfRunning 호출하는 true 경우 채널을 닫아 I/O 작업이 중단될 수 있습니다. 이 경우 I/O 작업 throw CancellationException 결과를 기다리는 모든 스레드와 예외를 제외하고 채널에서 처리 중인 다른 I/O 작업이 모두 완료 AsynchronousCloseException됩니다.

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

1.7에 추가되었습니다.

에 대한 java.nio.channels.AsynchronousChannelJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

속성

Handle

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

(다음에서 상속됨 IJavaObject)
IsOpen

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

(다음에서 상속됨 IChannel)
JniIdentityHashCode

래핑된 인스턴스의 java.lang.System.identityHashCode() 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

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

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Close()

이 채널을 닫습니다.

Disposed()

인스턴스가 삭제되었을 때 호출됩니다.

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

이 인스턴스에 대한 미해결 참조가 없으면 호출 Dispose()합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

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

인스턴스가 종료될 때 호출됩니다.

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

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

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

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

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

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

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

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

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

적용 대상