Share via


AsynchronousChannelGroup 클래스

정의

리소스 공유를 위해 비동기 채널 그룹화

[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
상속
AsynchronousChannelGroup
특성

설명

리소스 공유를 위해 비동기 채널 그룹화

비동기 채널 그룹은 그룹에 바인딩된 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">캡션 style="display:none:">System properties</캡션><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<</일><td> 이 속성의 값은 구체적인 java.util.concurrent.ThreadFactory ThreadFactory 클래스의 정규화된 이름으로 가져옵니다. 클래스는 시스템 클래스 로더를 사용하여 로드되고 인스턴스화됩니다. 팩터리의 java.util.concurrent.ThreadFactory#newThread newThread 메서드는 기본 그룹의 스레드 풀에 대한 각 스레드를 만들기 위해 호출됩니다. 속성 값을 로드하고 인스턴스화하는 프로세스가 실패하면 기본 그룹을 생성하는 동안 지정되지 않은 오류가 throw됩니다. </td></tr tr>><<th scope="row"java.nio.channels.DefaultThreadPool.initialSize<>/th><td> 기본 그룹에 대한 매개 변수 값 initialSize 입니다(참조#withCachedThreadPool withCachedThreadPool). 속성 값은 초기 크기 매개 변수인 Integer 의 표현으로 사용됩니다String. 값을 로 Integer 구문 분석할 수 없는 경우 기본 그룹을 생성하는 동안 지정되지 않은 오류가 throw됩니다. </td></tr></tbody></table>

"스레딩"><h2>스레딩</h2>

그룹에 바인딩된 채널에서 시작된 I/O 작업에 대한 완료 처리기는 그룹의 풀된 스레드 중 하나에서 호출되도록 보장됩니다. 이렇게 하면 완료 처리기가 예상되는 <em>id</em>이 있는 스레드에서 실행됩니다.

I/O 작업이 즉시 완료되고 시작 스레드가 그룹의 풀링된 스레드 중 하나인 경우 완료 처리기는 시작 스레드에 의해 직접 호출될 수 있습니다. 스택 오버플로를 방지하기 위해 구현은 스레드 스택의 활성화 수에 제한을 적용할 수 있습니다. 일부 I/O 작업은 시작 스레드에서 직접 완료 처리기를 호출하는 것을 금지할 수 있습니다(참조 AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept).

"shutdown"><h2>종료 및 종료</h2>

메서드는 #shutdown() shutdown 그룹의 em>orderly shutdown</em>을 시작하는 <데 사용됩니다. 순서대로 종료하면 그룹이 종료로 표시됩니다. 그룹에 바인딩되는 채널을 추가로 생성하려고 하면 가 throw ShutdownChannelGroupException됩니다. 그룹을 종료할지 여부는 메서드를 사용하여 #isShutdown() isShutdown 테스트할 수 있습니다. 종료되면 그룹에 <>바인딩된 모든 비동기 채널이 닫혀 있고, 적극적으로 실행되는 모든 완료 처리기가 완료될 때 그룹이 종료<>되고, 그룹에서 사용하는 리소스가 해제됩니다. 완료 처리기를 실행하는 스레드를 중지하거나 중단하려고 시도하지 않습니다. 메서드는 #isTerminated() isTerminated 그룹이 종료되었는지 테스트하는 데 사용되며 #awaitTermination awaitTermination 그룹이 종료될 때까지 메서드를 차단할 수 있습니다.

메서드를 #shutdownNow() shutdownNow 사용하여 그룹의 강제 종료</종료>를 시작할>< 수 있습니다. 순서대로 종료하여 수행되는 작업 외에도 메서드는 shutdownNow 메서드를 호출하는 AsynchronousChannel#close close 것처럼 그룹의 열려 있는 모든 채널을 닫습니다.

1.7에 추가되었습니다.

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

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

생성자

AsynchronousChannelGroup(AsynchronousChannelProvider)

이 클래스의 새 instance 초기화합니다.

AsynchronousChannelGroup(IntPtr, JniHandleOwnership)

리소스 공유를 위해 비동기 채널 그룹화

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 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()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 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)

리소스 공유를 위해 비동기 채널 그룹화

적용 대상