RecursiveTask 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.
Bearing ForkJoinTaskhasil rekursif .
[Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public abstract class RecursiveTask : Java.Util.Concurrent.ForkJoinTask
[<Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type RecursiveTask = class
inherit ForkJoinTask
- Warisan
- Atribut
Keterangan
Bearing ForkJoinTaskhasil rekursif .
Misalnya, berikut adalah program berbasis tugas untuk komputasi Factorials:
{@code
import java.util.concurrent.RecursiveTask;
import java.math.BigInteger;
public class Factorial {
static class FactorialTask extends RecursiveTask<BigInteger> {
private final int from, to;
FactorialTask(int from, int to) { this.from = from; this.to = to; }
protected BigInteger compute() {
int range = to - from;
if (range == 0) { // base case
return BigInteger.valueOf(from);
} else if (range == 1) { // too small to parallelize
return BigInteger.valueOf(from).multiply(BigInteger.valueOf(to));
} else { // split in half
int mid = from + range / 2;
FactorialTask leftTask = new FactorialTask(from, mid);
leftTask.fork(); // perform about half the work locally
return new FactorialTask(mid + 1, to).compute()
.multiply(leftTask.join());
}
}
}
static BigInteger factorial(int n) { // uses ForkJoinPool.commonPool()
return (n <= 1) ? BigInteger.ONE : new FactorialTask(1, n).invoke();
}
public static void main(String[] args) {
System.out.println(factorial(Integer.parseInt(args[0])));
}
}}
Ditambahkan dalam 1.7.
Java dokumentasi untuk java.util.concurrent.RecursiveTask.
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 |
|---|---|
| RecursiveTask() |
Konstruktor untuk subkelas yang akan dipanggil. |
| RecursiveTask(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| Exception |
Mengembalikan pengecualian yang dilemparkan oleh komputasi dasar, atau |
| ForkJoinTaskTag |
Mengembalikan tag untuk tugas ini. (Diperoleh dari ForkJoinTask) |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| IsCancelled |
Mengembalikan |
| IsCompletedAbnormally |
Mengembalikan |
| IsCompletedNormally |
Mengembalikan |
| IsDone |
Mengembalikan |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
Bearing |
| JniPeerMembers |
Bearing |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| RawRawResult |
Mengembalikan hasil yang akan dikembalikan oleh Join(), meskipun tugas ini selesai secara tidak normal, atau |
| ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
Metode
| Nama | Deskripsi |
|---|---|
| Cancel(Boolean) |
Mencoba membatalkan eksekusi tugas ini. (Diperoleh dari ForkJoinTask) |
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
| CompareAndSetForkJoinTaskTag(Int16, Int16) |
Secara kondisional mengatur nilai tag untuk tugas ini secara atomik. (Diperoleh dari ForkJoinTask) |
| Complete(Object) |
Menyelesaikan tugas ini, dan jika belum dibatalkan atau dibatalkan, mengembalikan nilai yang diberikan sebagai hasil dari pemanggilan berikutnya dan |
| CompleteExceptionally(Throwable) |
Menyelesaikan tugas ini secara tidak normal, dan jika belum dibatalkan atau dibatalkan, menyebabkannya melemparkan pengecualian yang diberikan pada |
| Compute() |
Komputasi utama yang dilakukan oleh tugas ini. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Bearing |
| 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() |
Bearing |
| Equals(Object) |
Bearing |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| ExceptionNow() |
Bearing |
| Exec() |
Menerapkan konvensi eksekusi untuk RecursiveTask. |
| Fork() |
Mengatur untuk menjalankan tugas ini secara asinkron di kumpulan tempat tugas saat ini berjalan, jika berlaku, atau menggunakan |
| Get() |
Menunggu jika perlu untuk menyelesaikan komputasi, lalu mengambil hasilnya. (Diperoleh dari ForkJoinTask) |
| Get(Int64, TimeUnit) |
Menunggu jika perlu untuk sebagian besar waktu yang diberikan agar komputasi selesai, lalu mengambil hasilnya, jika tersedia. (Diperoleh dari ForkJoinTask) |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| Invoke() |
Memulai melakukan tugas ini, menunggu penyelesaiannya jika perlu, dan mengembalikan hasilnya, atau melempar (tidak dicentang) |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Join() |
Mengembalikan hasil komputasi saat #isDone selesai. (Diperoleh dari ForkJoinTask) |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| QuietlyComplete() |
Menyelesaikan tugas ini secara normal tanpa mengatur nilai. (Diperoleh dari ForkJoinTask) |
| QuietlyInvoke() |
Memulai melakukan tugas ini dan menunggu penyelesaiannya jika perlu, tanpa mengembalikan hasilnya atau melemparkan pengecualiannya. (Diperoleh dari ForkJoinTask) |
| QuietlyJoin() |
Menggabungkan tugas ini, tanpa mengembalikan hasilnya atau melemparkan pengecualiannya. (Diperoleh dari ForkJoinTask) |
| QuietlyJoin(Int64, TimeUnit) |
Mencoba bergabung dengan tugas ini, mengembalikan true jika selesai (mungkin luar biasa) sebelum batas waktu yang diberikan dan utas saat ini belum terganggu. (Diperoleh dari ForkJoinTask) |
| QuietlyJoinUninterruptibly(Int64, TimeUnit) |
Mencoba bergabung dengan tugas ini, mengembalikan true jika selesai (mungkin luar biasa) sebelum batas waktu yang diberikan. (Diperoleh dari ForkJoinTask) |
| Reinitialize() |
Mengatur ulang status pembbukuan internal tugas ini, memungkinkan |
| ResultNow() |
Bearing |
| SetForkJoinTaskTag(Int16) |
Secara atomis mengatur nilai tag untuk tugas ini dan mengembalikan nilai lama. (Diperoleh dari ForkJoinTask) |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Bearing |
| SetRawResult(Object) |
Memaksa nilai yang diberikan untuk dikembalikan sebagai hasilnya. (Diperoleh dari ForkJoinTask) |
| State() |
Bearing |
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
| TryUnfork() |
Mencoba membatalkan jadwal tugas ini untuk eksekusi. (Diperoleh dari ForkJoinTask) |
| 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 real time telah berlalu. (Diperoleh dari Object) |
| Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
Bearing |
| IJavaPeerable.Finalized() |
Bearing |
| IJavaPeerable.JniObjectReferenceControlBlock |
Bearing |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Bearing |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Bearing |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Bearing |
| IJavaPeerable.UnregisterFromRuntime() |
Bearing |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
Bearing |
| GetAsync(IFuture) |
Bearing |
| 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) |
Bearing |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |