IFuture 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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.Future
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
속성
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
IsCancelled |
이 작업이 정상적으로 완료되기 전에 취소되었는지를 반환 |
IsDone |
이 작업이 완료되었는지를 반환합니다 |
JniIdentityHashCode |
래핑된 인스턴스의 |
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
PeerReference |
JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
Cancel(Boolean) |
이 작업의 실행을 취소하려고 시도합니다. |
Disposed() |
인스턴스가 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 인스턴스에 대한 미해결 참조가 없으면 호출 |
Finalized() |
인스턴스가 종료될 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
Get() |
계산이 완료될 때까지 필요한 경우 대기한 다음 결과를 검색합니다. |
Get(Int64, TimeUnit) |
계산이 완료될 때까지 최대 지정된 시간 동안 필요한 경우 대기한 다음, 사용 가능한 경우 결과를 검색합니다. |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
A |
SetPeerReference(JniObjectReference) |
에서 반환 |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
A |
GetJniTypeName(IJavaPeerable) |
A |
GetAsync(IFuture, Int64, TimeUnit) |
A |
GetAsync(IFuture) |
A |