RecursiveTask Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Рекурсивный результат.ForkJoinTask
[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
- Наследование
- Атрибуты
Комментарии
Рекурсивный результат.ForkJoinTask
Например, ниже приведена программа на основе задач для вычислений 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])));
}
}}
Добавлено в версии 1.7.
Java документации по java.util.concurrent.RecursiveTask.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| RecursiveTask() |
Конструктор для вызываемого подкласса. |
| RecursiveTask(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Exception |
Возвращает исключение, вызываемое базовым вычислением, или если оно отменено, или |
| ForkJoinTaskTag |
Возвращает тег для этой задачи. (Унаследовано от ForkJoinTask) |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsCancelled |
Возвращает, |
| IsCompletedAbnormally |
Возвращает, |
| IsCompletedNormally |
Возвращает, |
| IsDone |
Возвращает, |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Рекурсивный результат. |
| JniPeerMembers |
Рекурсивный результат. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| RawRawResult |
Возвращает результат, который будет возвращен Join(), даже если эта задача завершена ненормально или |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| Cancel(Boolean) |
Пытается отменить выполнение этой задачи. (Унаследовано от ForkJoinTask) |
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| CompareAndSetForkJoinTaskTag(Int16, Int16) |
Атомарно задает значение тега для этой задачи. (Унаследовано от ForkJoinTask) |
| Complete(Object) |
Завершает эту задачу, а если она еще не прервана или отменена, возвращает заданное значение в результате последующих вызовов |
| CompleteExceptionally(Throwable) |
Завершает эту задачу ненормально, а если она еще не прервана или отменена, вызывает исключение при |
| Compute() |
Основные вычисления, выполняемые этой задачей. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Рекурсивный результат. |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Рекурсивный результат. |
| Equals(Object) |
Рекурсивный результат. |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| ExceptionNow() |
Рекурсивный результат. |
| Exec() |
Реализует соглашения о выполнении для RecursiveTask. |
| Fork() |
Упорядочивает асинхронное выполнение этой задачи в пуле, в котором выполняется текущая задача, если применимо, или используется, |
| Get() |
Ожидает завершения вычисления, а затем извлекает результат. (Унаследовано от ForkJoinTask) |
| Get(Int64, TimeUnit) |
Ожидает, если это необходимо, по крайней мере заданное время для завершения вычисления, а затем извлекает его результат, если он доступен. (Унаследовано от ForkJoinTask) |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| Invoke() |
Начинает выполнение этой задачи, ожидает завершения при необходимости и возвращает его результат или вызывает (снято) |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Join() |
Возвращает результат вычисления при выполнении #isDone. (Унаследовано от ForkJoinTask) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| QuietlyComplete() |
Обычно выполняет эту задачу без задания значения. (Унаследовано от ForkJoinTask) |
| QuietlyInvoke() |
Начинает выполнение этой задачи и ожидает завершения при необходимости, не возвращая результат или бросая исключение. (Унаследовано от ForkJoinTask) |
| QuietlyJoin() |
Присоединяет эту задачу, не возвращая результат или не вызывая исключение. (Унаследовано от ForkJoinTask) |
| QuietlyJoin(Int64, TimeUnit) |
Пытается присоединиться к этой задаче, возвращая значение true, если оно завершено (возможно, исключительно) до заданного времени ожидания и текущего потока не было прервано. (Унаследовано от ForkJoinTask) |
| QuietlyJoinUninterruptibly(Int64, TimeUnit) |
Пытается присоединиться к этой задаче, возвращая значение true, если оно завершено (возможно, исключительно) до заданного времени ожидания. (Унаследовано от ForkJoinTask) |
| Reinitialize() |
Сбрасывает состояние внутренней бухгалтерии этой задачи, позволяя последующему |
| ResultNow() |
Рекурсивный результат. |
| SetForkJoinTaskTag(Int16) |
Атомарно задает значение тега для этой задачи и возвращает старое значение. (Унаследовано от ForkJoinTask) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Рекурсивный результат. |
| SetRawResult(Object) |
Принудительно возвращает заданное значение в результате. (Унаследовано от ForkJoinTask) |
| State() |
Рекурсивный результат. |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| TryUnfork() |
Пытается отменить эту задачу для выполнения. (Унаследовано от ForkJoinTask) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Рекурсивный результат. |
| IJavaPeerable.Finalized() |
Рекурсивный результат. |
| IJavaPeerable.JniObjectReferenceControlBlock |
Рекурсивный результат. |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Рекурсивный результат. |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Рекурсивный результат. |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Рекурсивный результат. |
| IJavaPeerable.UnregisterFromRuntime() |
Рекурсивный результат. |
Методы расширения
| Имя. | Описание |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
Рекурсивный результат. |
| GetAsync(IFuture) |
Рекурсивный результат. |
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Рекурсивный результат. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |