IAsynchronousChannel 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
비동기 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}<V> <em>operation</em>(<em>...</em>)
</li li><>
void <em>operation</em>(<em>...</em> A attachment, {@link
CompletionHandler}<V,? super A> 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.AsynchronousChannel
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
속성
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
IsOpen |
이 채널이 열려 있으면 true를 반환합니다. (다음에서 상속됨 IChannel) |
JniIdentityHashCode |
래핑된 인스턴스의 |
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
PeerReference |
JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
Close() |
이 채널을 닫습니다. |
Disposed() |
인스턴스가 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 인스턴스에 대한 미해결 참조가 없으면 호출 |
Finalized() |
인스턴스가 종료될 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
비동기 I/O 작업을 지원하는 채널입니다. (다음에서 상속됨 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
에서 반환 |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
비동기 I/O 작업을 지원하는 채널입니다. |
GetJniTypeName(IJavaPeerable) |
비동기 I/O 작업을 지원하는 채널입니다. |