다음을 통해 공유


IFuture 인터페이스

정의

A Future 는 비동기 계산의 결과를 나타냅니다.

[Android.Runtime.Register("java/util/concurrent/Future", "", "Java.Util.Concurrent.IFutureInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public interface IFuture : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/Future", "", "Java.Util.Concurrent.IFutureInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type IFuture = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
파생
특성
구현

설명

A Future 는 비동기 계산의 결과를 나타냅니다. 계산이 완료되었는지 확인하고, 완료될 때까지 기다렸다가 계산 결과를 검색하는 메서드가 제공됩니다. 계산이 완료된 경우에만 메서드 get 를 사용하여 결과를 검색할 수 있으며, 준비가 될 때까지 필요한 경우 차단합니다. 취소는 메서드에 의해 수행됩니다 cancel . 작업이 정상적으로 완료되었는지 또는 취소되었는지 확인하기 위한 추가 메서드가 제공됩니다. 계산이 완료되면 계산을 취소할 수 없습니다. 취소 가능성을 위해 A를 Future 사용하지만 사용 가능한 결과를 제공하지 않하려는 경우 양식 Future<?> 형식을 선언하고 기본 작업의 결과로 반환 null 할 수 있습니다.

<b>샘플 사용량</b> (다음 클래스는 모두 구성됩니다.)

{@code
            interface ArchiveSearcher { String search(String target); }
            class App {
              ExecutorService executor = ...;
              ArchiveSearcher searcher = ...;
              void showSearch(String target) throws InterruptedException {
                Callable<String> task = () -> searcher.search(target);
                Future<String> future = executor.submit(task);
                displayOtherThings(); // do other things while searching
                try {
                  displayText(future.get()); // use future
                } catch (ExecutionException ex) { cleanup(); return; }
              }
            }}

클래스는 FutureTask 구현되는 Future 구현 Runnable이므로 Executor. 예를 들어 위의 생성을 다음으로 submit 바꿀 수 있습니다.

{@code
            FutureTask<String> future = new FutureTask<>(task);
            executor.execute(future);}

메모리 일관성 효과: 비동기 계산<>에 의해 수행된 작업입니다. 다른 스레드에서 해당 Future.get() 작업을 수행합니다<>.

1.5에 추가되었습니다.

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

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

속성

Handle

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

(다음에서 상속됨 IJavaObject)
IsCancelled

이 작업이 정상적으로 완료되기 전에 취소되었는지를 반환 true 합니다.

IsDone

이 작업이 완료되었는지를 반환합니다 true .

JniIdentityHashCode

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

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

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

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

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

(다음에서 상속됨 IJavaPeerable)

메서드

Cancel(Boolean)

이 작업의 실행을 취소하려고 시도합니다.

Disposed()

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

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

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

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

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

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

계산이 완료될 때까지 필요한 경우 대기한 다음 결과를 검색합니다.

Get(Int64, TimeUnit)

계산이 완료될 때까지 최대 지정된 시간 동안 필요한 경우 대기한 다음, 사용 가능한 경우 결과를 검색합니다.

SetJniIdentityHashCode(Int32)

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

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

A Future 는 비동기 계산의 결과를 나타냅니다.

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

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

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

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

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

A Future 는 비동기 계산의 결과를 나타냅니다.

GetJniTypeName(IJavaPeerable)

A Future 는 비동기 계산의 결과를 나타냅니다.

GetAsync(IFuture)

A Future 는 비동기 계산의 결과를 나타냅니다.

GetAsync(IFuture, Int64, TimeUnit)

A Future 는 비동기 계산의 결과를 나타냅니다.

적용 대상