AsynchronousChannelGroup 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
리소스 공유를 위해 비동기 채널 그룹화
[Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousChannelGroup : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousChannelGroup = class
inherit Object
- 상속
- 특성
설명
리소스 공유를 위해 비동기 채널 그룹화
비동기 채널 그룹은 그룹에 바인딩된 AsynchronousChannel asynchronous channels
I/O 작업의 완료를 처리하는 데 필요한 메커니즘을 캡슐화합니다. 그룹에는 I/O 이벤트를 처리하고 그룹의 채널에서 수행되는 비동기 작업의 결과를 사용하도록 디스패치하기 위해 CompletionHandler completion-handlers
태스크가 제출되는 연결된 스레드 풀이 있습니다. 풀링된 스레드는 I/O 이벤트 처리 외에도 비동기 I/O 작업의 실행을 지원하는 데 필요한 다른 작업을 실행할 수도 있습니다.
여기에 정의된 메서드 또는 #withCachedThreadPool withCachedThreadPool
메서드를 호출하여 #withFixedThreadPool withFixedThreadPool
비동기 채널 그룹을 만듭니다. 채널은 채널을 생성할 때 그룹을 지정하여 그룹에 바인딩됩니다. 연결된 스레드 풀은 그룹에 의해 em>소유</em>입니다<. 그룹을 종료하면 연결된 스레드 풀이 종료됩니다.
명시적으로 만든 그룹 외에도 Java 가상 머신은 자동으로 생성되는 시스템 전체 <em>기본 그룹</em> 을 유지 관리합니다. 생성 시 그룹을 지정하지 않는 비동기 채널은 기본 그룹에 바인딩됩니다. 기본 그룹에는 필요에 따라 새 스레드를 만드는 연결된 스레드 풀이 있습니다. 기본 그룹은 아래 표에 정의된 시스템 속성을 통해 구성할 수 있습니다. java.util.concurrent.ThreadFactory ThreadFactory
기본 그룹에 대해 구성되지 않은 경우 기본 그룹의 풀된 스레드는 스레드입니다Thread#isDaemon daemon
.
<table class="striped">caption style="display:none:">System properties</caption><thead><tr><th scope="col">System property</th th<>scope="col">Description</th<>/tr<>/thead><tbody<>tr><th scope="row"java.nio.channels.DefaultThreadPool.threadFactory
<>/th><td> 이 속성의 값은 구체적인 java.util.concurrent.ThreadFactory ThreadFactory
클래스의 정규화된 이름으로 사용됩니다.< 클래스는 시스템 클래스 로더를 사용하여 로드되고 인스턴스화됩니다. 팩터리의 java.util.concurrent.ThreadFactory#newThread newThread
메서드는 기본 그룹의 스레드 풀에 대한 각 스레드를 만들기 위해 호출됩니다. 속성 값을 로드하고 인스턴스화하는 프로세스가 실패하면 기본 그룹을 생성할 때 지정되지 않은 오류가 throw됩니다. </td></tr tr tr><<>th scope="row"<java.nio.channels.DefaultThreadPool.initialSize
>/th><td> 기본 그룹에 대한 매개 변수의 initialSize
값입니다(참조#withCachedThreadPool withCachedThreadPool
). 속성 값은 초기 크기 매개 변수의 Integer
표현으로 사용합니다String
. 값을 구문 분석 Integer
할 수 없는 경우 기본 그룹을 생성할 때 지정되지 않은 오류가 throw됩니다. </td></tr></tbody></table>
"threading"><h2>Threading</h2>
그룹에 바인딩된 채널에서 시작된 I/O 작업의 완료 처리기는 그룹의 풀된 스레드 중 하나에서 호출되도록 보장됩니다. 이렇게 하면 완료 처리기가 예상되는 <em>ID</em>을 가진 스레드에서 실행됩니다.
I/O 작업이 즉시 완료되고 시작 스레드가 그룹의 풀링된 스레드 중 하나인 경우 시작 스레드에서 직접 완료 처리기를 호출할 수 있습니다. 스택 오버플로를 방지하기 위해 구현은 스레드 스택의 활성화 수에 제한을 적용할 수 있습니다. 일부 I/O 작업은 시작 스레드에서 직접 완료 처리기를 호출하는 것을 금지할 수 있습니다(참조 AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept
).
"shutdown"><h2>종료 및 종료</h2>
이 #shutdown() shutdown
메서드는 그룹의 순서>대로 <종료</em>을 시작하는 데 사용됩니다. 질서 정연한 종료는 그룹을 종료로 표시합니다. 그룹에 바인딩하는 채널을 추가로 생성하려고 하면 throw ShutdownChannelGroupException
됩니다. 그룹 종료 여부 메서드를 사용 하 여 #isShutdown() isShutdown
테스트할 수 있습니다. 종료되면 그룹에 <바인딩된 모든 비동기 채널이 닫히고, 현재 실행 중인 모든 완료 처리기가 완료될 때 그룹 em>이 종료<>되고, 그룹에서 사용하는 리소스가 해제됩니다. 완료 처리기를 실행하는 스레드를 중지하거나 중단하려고 시도하지 않습니다. 이 #isTerminated() isTerminated
메서드는 그룹이 종료되었는지 테스트하는 데 사용되며 #awaitTermination awaitTermination
그룹이 종료될 때까지 메서드를 차단할 수 있습니다.
이 메서드를 #shutdownNow() shutdownNow
사용하여 그룹의 강제 종료</em>을 시작할 <>수 있습니다. 순서대로 종료하여 수행되는 작업 외에도 메서드는 shutdownNow
메서드를 호출하는 것처럼 그룹의 열려 있는 AsynchronousChannel#close close
모든 채널을 닫습니다.
1.7에 추가되었습니다.
에 대한 java.nio.channels.AsynchronousChannelGroup
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
AsynchronousChannelGroup(AsynchronousChannelProvider) |
이 클래스의 새 인스턴스를 초기화합니다. |
AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
리소스 공유를 위해 비동기 채널 그룹화 |
속성
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
IsShutdown |
리소스 공유를 위해 비동기 채널 그룹화 |
IsTerminated |
리소스 공유를 위해 비동기 채널 그룹화 |
JniIdentityHashCode |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
JniPeerMembers |
리소스 공유를 위해 비동기 채널 그룹화 |
PeerReference |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
ThresholdClass |
리소스 공유를 위해 비동기 채널 그룹화 |
ThresholdType |
리소스 공유를 위해 비동기 채널 그룹화 |
메서드
AwaitTermination(Int64, TimeUnit) |
그룹의 종료를 기다립니다. |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Dispose() |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
Dispose(Boolean) |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Provider() |
이 채널 그룹을 만든 공급자를 반환합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
Shutdown() |
그룹의 순서대로 종료를 시작합니다. |
ShutdownNow() |
그룹을 종료하고 그룹의 열려 있는 모든 채널을 닫습니다. |
ToArray<T>() |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
WithCachedThreadPool(IExecutorService, Int32) |
필요에 따라 새 스레드를 만드는 지정된 스레드 풀을 사용하여 비동기 채널 그룹을 만듭니다. |
WithFixedThreadPool(Int32, IThreadFactory) |
고정 스레드 풀을 사용하여 비동기 채널 그룹을 만듭니다. |
WithThreadPool(IExecutorService) |
지정된 스레드 풀을 사용하여 비동기 채널 그룹을 만듭니다. |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
리소스 공유를 위해 비동기 채널 그룹화 (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
리소스 공유를 위해 비동기 채널 그룹화 |
GetJniTypeName(IJavaPeerable) |
리소스 공유를 위해 비동기 채널 그룹화 |