CompletableFuture Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Future yang mungkin diselesaikan secara eksplisit (mengatur nilai dan statusnya), dan dapat digunakan sebagai CompletionStage, mendukung fungsi dan tindakan dependen yang memicu setelah selesai.
[Android.Runtime.Register("java/util/concurrent/CompletableFuture", ApiSince=24, DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class CompletableFuture : Java.Lang.Object, IDisposable, Java.Util.Concurrent.ICompletionStage, Java.Util.Concurrent.IFuture
[<Android.Runtime.Register("java/util/concurrent/CompletableFuture", ApiSince=24, DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type CompletableFuture = class
inherit Object
interface ICompletionStage
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IFuture
- Warisan
- Atribut
- Penerapan
Keterangan
Future yang mungkin diselesaikan secara eksplisit (mengatur nilai dan statusnya), dan dapat digunakan sebagai CompletionStage, mendukung fungsi dan tindakan dependen yang memicu setelah selesai.
Ketika dua utas atau lebih mencoba untuk #complete complete, #completeExceptionally completeExceptionally, atau #cancel cancel CompletableFuture, hanya satu dari mereka yang berhasil.
Selain metode dan metode terkait ini untuk memanipulasi status dan hasil secara langsung, CompletableFuture mengimplementasikan antarmuka CompletionStage dengan kebijakan berikut: <ul>
<Tindakan li>yang disediakan untuk penyelesaian <>dependen metode non-asinkron</em> dapat dilakukan oleh utas yang menyelesaikan CompletableFuture saat ini, atau oleh pemanggil lain dari metode penyelesaian.
<li>Semua <metode asinkron></em> tanpa argumen Eksekutor eksplisit dilakukan menggunakan ForkJoinPool#commonPool() (kecuali tidak mendukung tingkat paralelisme setidaknya dua, dalam hal ini, Utas baru dibuat untuk menjalankan setiap tugas). Untuk menyederhanakan pemantauan, penelusuran kesalahan, dan pelacakan, semua tugas asinkron yang dihasilkan adalah instans antarmuka AsynchronousCompletionTaskpenanda . Operasi dengan penundaan waktu dapat menggunakan metode adaptor yang ditentukan dalam kelas ini, misalnya: supplyAsync(supplier, delayedExecutor(timeout, timeUnit)). Untuk mendukung metode dengan penundaan dan batas waktu, kelas ini mempertahankan paling banyak satu utas daemon untuk memicu dan membatalkan tindakan, bukan untuk menjalankannya.
<li>Semua metode CompletionStage diimplementasikan secara independen dari metode publik lainnya, sehingga perilaku satu metode tidak terpengaruh oleh penimpaan orang lain dalam subkelas.
</ul>
CompletableFuture juga menerapkan Future dengan kebijakan berikut: <ul>
<li>Karena (tidak seperti FutureTask) kelas ini tidak memiliki kontrol langsung atas komputasi yang menyebabkannya selesai, pembatalan diperlakukan hanya sebagai bentuk lain dari penyelesaian luar biasa. Metode #cancel cancel memiliki efek yang sama dengan completeExceptionally(new CancellationException()). Metode #isCompletedExceptionally dapat digunakan untuk menentukan apakah CompletableFuture diselesaikan dengan cara yang luar biasa.
<li>Dalam kasus penyelesaian luar biasa dengan CompletionException, metode #get() dan #get(long, TimeUnit) melempar ExecutionException dengan penyebab yang sama seperti yang ditahan dalam CompletionException yang sesuai. Untuk menyederhanakan penggunaan di sebagian besar konteks, kelas ini juga mendefinisikan metode #join() dan #getNow sebagai gantinya melempar CompletionException langsung dalam kasus ini.
</ul>
Argumen yang digunakan untuk meneruskan hasil penyelesaian (yaitu, untuk parameter jenis T) untuk metode yang menerimanya mungkin null, tetapi meneruskan nilai null untuk parameter lain akan mengakibatkan NullPointerException dilemparkan.
Ditambahkan dalam 1.8.
Java dokumentasi untuk java.util.concurrent.CompletableFuture.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Konstruktor
| Nama | Deskripsi |
|---|---|
| CompletableFuture() |
Membuat CompletableFuture baru yang tidak lengkap. |
| CompletableFuture(IntPtr, JniHandleOwnership) |
|
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| IsCancelled |
Mengembalikan |
| IsCompletedExceptionally |
Mengembalikan |
| IsDone |
Mengembalikan |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| NumberOfDependents |
Mengembalikan perkiraan jumlah CompletableFutures yang penyelesaiannya menunggu penyelesaian CompletableFuture ini. |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| ThresholdClass |
|
| ThresholdType |
|
Metode
| Nama | Deskripsi |
|---|---|
| AcceptEither(ICompletionStage, IConsumer) |
|
| AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor) |
|
| AcceptEitherAsync(ICompletionStage, IConsumer) |
|
| AllOf(CompletableFuture[]) |
Mengembalikan CompletableFuture baru yang selesai ketika semua CompletableFutures yang diberikan selesai. |
| AnyOf(CompletableFuture[]) |
Mengembalikan CompletableFuture baru yang selesai ketika salah satu CompletableFutures yang diberikan selesai, dengan hasil yang sama. |
| ApplyToEither(ICompletionStage, IFunction) |
|
| ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor) |
|
| ApplyToEitherAsync(ICompletionStage, IFunction) |
|
| Cancel(Boolean) |
Jika belum selesai, selesaikan CompletableFuture ini dengan |
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
| Complete(Object) |
Jika belum selesai, atur nilai yang dikembalikan oleh |
| CompleteAsync(ISupplier, IExecutor) |
Menyelesaikan CompletableFuture ini dengan hasil fungsi Pemasok yang diberikan yang dipanggil dari tugas asinkron menggunakan eksekutor yang diberikan. |
| CompleteAsync(ISupplier) |
Menyelesaikan CompletableFuture ini dengan hasil fungsi Pemasok yang diberikan yang dipanggil dari tugas asinkron menggunakan pelaksana default. |
| CompletedFuture(Object) |
Mengembalikan CompletableFuture baru yang sudah selesai dengan nilai yang diberikan. |
| CompletedStage(Object) |
Mengembalikan CompletionStage baru yang sudah selesai dengan nilai yang diberikan dan hanya mendukung metode tersebut dalam antarmuka |
| CompleteExceptionally(Throwable) |
Jika belum selesai, menyebabkan pemanggilan |
| CompleteOnTimeout(Object, Int64, TimeUnit) |
Menyelesaikan CompletableFuture ini dengan nilai yang diberikan jika tidak diselesaikan sebelum batas waktu yang diberikan. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Copy() |
Mengembalikan CompletableFuture baru yang diselesaikan secara normal dengan nilai yang sama dengan CompletableFuture ini ketika selesai secara normal. |
| DefaultExecutor() |
Mengembalikan Pelaksana default yang digunakan untuk metode asinkron yang tidak menentukan Pelaksana. |
| DelayedExecutor(Int64, TimeUnit, IExecutor) |
Mengembalikan Pelaksana baru yang mengirimkan tugas ke pelaksana dasar yang diberikan setelah penundaan yang diberikan (atau tidak ada penundaan jika tidak positif). |
| DelayedExecutor(Int64, TimeUnit) |
Mengembalikan Eksekutor baru yang mengirimkan tugas ke pelaksana default setelah penundaan yang diberikan (atau tidak ada penundaan jika non-positif). |
| Dispose() |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| Dispose(Boolean) |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| Exceptionally(IFunction) |
Mengembalikan CompletableFuture baru yang selesai ketika CompletableFuture ini selesai, dengan hasil fungsi yang diberikan dari pengecualian yang memicu penyelesaian CompletableFuture ini ketika selesai dengan luar biasa; jika tidak, jika CompletableFuture ini selesai secara normal, maka CompletableFuture yang dikembalikan juga selesai secara normal dengan nilai yang sama. |
| ExceptionallyAsync(IFunction, IExecutor) |
|
| ExceptionallyAsync(IFunction) |
|
| ExceptionallyCompose(IFunction) |
|
| ExceptionallyComposeAsync(IFunction, IExecutor) |
|
| ExceptionallyComposeAsync(IFunction) |
|
| ExceptionNow() |
|
| FailedFuture(Throwable) |
Mengembalikan CompletableFuture baru yang sudah selesai secara luar biasa dengan pengecualian yang diberikan. |
| FailedStage(Throwable) |
Mengembalikan CompletionStage baru yang sudah selesai secara luar biasa dengan pengecualian yang diberikan dan hanya mendukung metode tersebut dalam antarmuka |
| Get() |
Menunggu jika perlu agar masa depan ini selesai, lalu mengembalikan hasilnya. |
| Get(Int64, TimeUnit) |
Menunggu jika perlu untuk sebagian besar waktu yang diberikan agar masa depan ini selesai, lalu mengembalikan hasilnya, jika tersedia. |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| GetNow(Object) |
Mengembalikan nilai hasil (atau melemparkan pengecualian yang ditemui) jika selesai, jika tidak mengembalikan nilai yang diberikanIfAbsent. |
| Handle(IBiFunction) |
|
| HandleAsync(IBiFunction, IExecutor) |
|
| HandleAsync(IBiFunction) |
|
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Join() |
Mengembalikan nilai hasil saat selesai, atau melempar pengecualian (tidak dicentang) jika diselesaikan dengan luar biasa. |
| MinimalCompletionStage() |
Mengembalikan CompletionStage baru yang diselesaikan secara normal dengan nilai yang sama dengan CompletableFuture ini ketika selesai secara normal, dan tidak dapat diselesaikan secara independen atau digunakan dengan cara yang tidak ditentukan oleh metode antarmuka |
| NewIncompleteFuture() |
Mengembalikan CompletableFuture baru yang tidak lengkap dari jenis yang akan dikembalikan oleh metode CompletionStage. |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| ObtrudeException(Throwable) |
Secara paksa menyebabkan pemanggilan metode |
| ObtrudeValue(Object) |
Secara paksa mengatur atau mengatur ulang nilai yang kemudian dikembalikan oleh metode |
| OrTimeout(Int64, TimeUnit) |
Secara luar biasa menyelesaikan CompletableFuture ini dengan |
| ResultNow() |
|
| RunAfterBoth(ICompletionStage, IRunnable) |
|
| RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor) |
|
| RunAfterBothAsync(ICompletionStage, IRunnable) |
|
| RunAfterEither(ICompletionStage, IRunnable) |
|
| RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor) |
|
| RunAfterEitherAsync(ICompletionStage, IRunnable) |
|
| RunAsync(IRunnable, IExecutor) |
Mengembalikan CompletableFuture baru yang diselesaikan secara asinkron oleh tugas yang berjalan di eksekutor yang diberikan setelah menjalankan tindakan yang diberikan. |
| RunAsync(IRunnable) |
Mengembalikan CompletableFuture baru yang diselesaikan secara asinkron oleh tugas yang berjalan setelah |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| State() |
|
| SupplyAsync(ISupplier, IExecutor) |
Mengembalikan CompletableFuture baru yang diselesaikan secara asinkron oleh tugas yang berjalan di pelaksana yang diberikan dengan nilai yang diperoleh dengan memanggil Pemasok yang diberikan. |
| SupplyAsync(ISupplier) |
Mengembalikan CompletableFuture baru yang diselesaikan secara asinkron oleh tugas yang berjalan di |
| ThenAccept(IConsumer) |
|
| ThenAcceptAsync(IConsumer, IExecutor) |
|
| ThenAcceptAsync(IConsumer) |
|
| ThenAcceptBoth(ICompletionStage, IBiConsumer) |
|
| ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor) |
|
| ThenAcceptBothAsync(ICompletionStage, IBiConsumer) |
|
| ThenApply(IFunction) |
|
| ThenApplyAsync(IFunction, IExecutor) |
|
| ThenApplyAsync(IFunction) |
|
| ThenCombine(ICompletionStage, IBiFunction) |
|
| ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor) |
|
| ThenCombineAsync(ICompletionStage, IBiFunction) |
|
| ThenCompose(IFunction) |
|
| ThenComposeAsync(IFunction, IExecutor) |
|
| ThenComposeAsync(IFunction) |
|
| ThenRun(IRunnable) |
|
| ThenRunAsync(IRunnable, IExecutor) |
|
| ThenRunAsync(IRunnable) |
|
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| ToCompletableFuture() |
Mengembalikan CompletableFuture ini. |
| ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
| UnregisterFromRuntime() |
Membatalkan pendaftaran peer Java ini dari runtime interop. (Diperoleh dari Object) |
| Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
| Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
| Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
| WhenComplete(IBiConsumer) |
|
| WhenCompleteAsync(IBiConsumer, IExecutor) |
|
| WhenCompleteAsync(IBiConsumer) |
|
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
|
| GetAsync(IFuture) |
|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |