RecursiveTask Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Un rodamiento ForkJoinTaskde resultados recursivo .
[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
- Herencia
- Atributos
Comentarios
Un rodamiento ForkJoinTaskde resultados recursivo .
Por ejemplo, este es un programa basado en tareas para calcular factoriales:
{@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])));
}
}}
Agregado en la versión 1.7.
Documentación de Java para java.util.concurrent.RecursiveTask.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Constructores
| Nombre | Description |
|---|---|
| RecursiveTask() |
Constructor para que las subclases llamen. |
| RecursiveTask(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Exception |
Devuelve la excepción producida por el cálculo base, o si |
| ForkJoinTaskTag |
Devuelve la etiqueta de esta tarea. (Heredado de ForkJoinTask) |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| IsCancelled |
Devuelve |
| IsCompletedAbnormally |
Devuelve |
| IsCompletedNormally |
Devuelve |
| IsDone |
Devuelve |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Un rodamiento |
| JniPeerMembers |
Un rodamiento |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| RawRawResult |
Devuelve el resultado devuelto por Join(), incluso si esta tarea se completó de forma anómala o |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
| Nombre | Description |
|---|---|
| Cancel(Boolean) |
Intenta cancelar la ejecución de esta tarea. (Heredado de ForkJoinTask) |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| CompareAndSetForkJoinTaskTag(Int16, Int16) |
Establece condicionalmente el valor de etiqueta de esta tarea de forma atómica. (Heredado de ForkJoinTask) |
| Complete(Object) |
Completa esta tarea y, si aún no se ha anulado o cancelado, devuelve el valor especificado como resultado de las invocaciones posteriores de |
| CompleteExceptionally(Throwable) |
Completa esta tarea de forma anómala y, si aún no se ha anulado o cancelado, hace que inicie la excepción dada en |
| Compute() |
El cálculo principal realizado por esta tarea. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Un rodamiento |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Un rodamiento |
| Equals(Object) |
Un rodamiento |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| ExceptionNow() |
Un rodamiento |
| Exec() |
Implementa convenciones de ejecución para RecursiveTask. |
| Fork() |
Organiza para ejecutar de forma asincrónica esta tarea en el grupo en el que se ejecuta la tarea actual, si procede, o usando si |
| Get() |
Espera si es necesario para que se complete el cálculo y, a continuación, recupera su resultado. (Heredado de ForkJoinTask) |
| Get(Int64, TimeUnit) |
Espera si es necesario para que el cálculo se complete como máximo y, a continuación, recupera su resultado, si está disponible. (Heredado de ForkJoinTask) |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| Invoke() |
Comienza a realizar esta tarea, espera su finalización si es necesario y devuelve su resultado, o inicia una (desactivada) |
| JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| Join() |
Devuelve el resultado del cálculo cuando #isDone se realiza. (Heredado de ForkJoinTask) |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| QuietlyComplete() |
Completa esta tarea normalmente sin establecer un valor. (Heredado de ForkJoinTask) |
| QuietlyInvoke() |
Comienza a realizar esta tarea y espera su finalización si es necesario, sin devolver su resultado ni producir su excepción. (Heredado de ForkJoinTask) |
| QuietlyJoin() |
Combina esta tarea, sin devolver su resultado ni producir su excepción. (Heredado de ForkJoinTask) |
| QuietlyJoin(Int64, TimeUnit) |
Intenta unir esta tarea, devolviendo true si se completó (posiblemente excepcionalmente) antes del tiempo de espera especificado y el subproceso actual no se ha interrumpido. (Heredado de ForkJoinTask) |
| QuietlyJoinUninterruptibly(Int64, TimeUnit) |
Intenta unir esta tarea, devolviendo true si se completó (posiblemente excepcionalmente) antes del tiempo de espera especificado. (Heredado de ForkJoinTask) |
| Reinitialize() |
Restablece el estado de contabilidad interno de esta tarea, lo que permite un posterior |
| ResultNow() |
Un rodamiento |
| SetForkJoinTaskTag(Int16) |
Establece de forma atómica el valor de etiqueta de esta tarea y devuelve el valor anterior. (Heredado de ForkJoinTask) |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Un rodamiento |
| SetRawResult(Object) |
Fuerza que el valor especificado se devuelva como resultado. (Heredado de ForkJoinTask) |
| State() |
Un rodamiento |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| TryUnfork() |
Intenta anular la programación de esta tarea para su ejecución. (Heredado de ForkJoinTask) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Un rodamiento |
| IJavaPeerable.Finalized() |
Un rodamiento |
| IJavaPeerable.JniObjectReferenceControlBlock |
Un rodamiento |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un rodamiento |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un rodamiento |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Un rodamiento |
| IJavaPeerable.UnregisterFromRuntime() |
Un rodamiento |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
Un rodamiento |
| GetAsync(IFuture) |
Un rodamiento |
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Un rodamiento |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |