다음을 통해 공유


ExecutorCompletionService 클래스

정의

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

[Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public class ExecutorCompletionService : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.ICompletionService
[<Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type ExecutorCompletionService = class
    inherit Object
    interface ICompletionService
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
상속
ExecutorCompletionService
특성
구현

설명

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다. 이 클래스는 완료 시 제출된 작업이 다음을 사용하여 take액세스할 수 있는 큐에 배치되도록 정렬합니다. 클래스는 작업 그룹을 처리할 때 일시적인 사용에 적합할 정도로 가볍습니다.

<b>사용 예제입니다.</b>

특정 문제에 대한 해결기 집합이 있고 각각 일부 형식 Result의 값을 반환하고 동시에 실행하여 null이 아닌 값을 반환하는 각각의 결과를 일부 메서드 use(Result r)에서 처리한다고 가정합니다. 다음과 같이 작성할 수 있습니다.

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException, ExecutionException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              solvers.forEach(cs::submit);
              for (int i = solvers.size(); i > 0; i--) {
                Result r = cs.take().get();
                if (r != null)
                  use(r);
              }
            }}

대신 작업 집합의 첫 번째 null이 아닌 결과를 사용하고, 예외가 발생하는 결과를 무시하고, 첫 번째 작업이 준비되면 다른 모든 작업을 취소한다고 가정합니다.

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              int n = solvers.size();
              List<Future<Result>> futures = new ArrayList<>(n);
              Result result = null;
              try {
                solvers.forEach(solver -> futures.add(cs.submit(solver)));
                for (int i = n; i > 0; i--) {
                  try {
                    Result r = cs.take().get();
                    if (r != null) {
                      result = r;
                      break;
                    }
                  } catch (ExecutionException ignore) {}
                }
              } finally {
                futures.forEach(future -> future.cancel(true));
              }

              if (result != null)
                use(result);
            }}

1.5에 추가되었습니다.

에 대한 java.util.concurrent.ExecutorCompletionServiceJava 설명서

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

생성자

ExecutorCompletionService(IExecutor)

기본 작업 실행을 위해 제공된 실행기를 사용하여 ExecutorCompletionService를 만들고 LinkedBlockingQueue 완료 큐로 만듭니다.

ExecutorCompletionService(IExecutor, IBlockingQueue)

기본 작업 실행을 위해 제공된 실행기를 사용하고 제공된 큐를 완료 큐로 사용하여 ExecutorCompletionService를 만듭니다.

ExecutorCompletionService(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

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

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)
JniPeerMembers

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

PeerReference

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Dispose()

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Poll()

다음 완료된 작업을 나타내는 Future를 검색하고 제거하거나 null 없는 경우 제거합니다.

Poll(Int64, TimeUnit)

다음 완료된 작업을 나타내는 Future를 검색하고 제거합니다. 아직 없는 경우 지정된 대기 시간까지 대기합니다.

PollAsync()

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

PollAsync(Int64, TimeUnit)

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Submit(ICallable)

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

Submit(IRunnable, Object)

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

Take()

다음 완료된 작업을 나타내는 Future를 검색하고 제거합니다. 아직 없는 경우 대기합니다.

TakeAsync()

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

ToArray<T>()

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

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

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.>

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

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

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

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

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

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

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

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

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

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

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

GetJniTypeName(IJavaPeerable)

제공된 Executor 작업을 실행하는 데 사용하는 A CompletionService 입니다.

적용 대상