thread termino saber programacion paralela manejo hilos entre ejemplos diferencia como java java.util.concurrent concurrent.futures

termino - ¿Por qué java.util.concurrent.RunnableFuture tiene un método run()?



runnable java (2)

No hay documentos que proporcionen tal explicación. Así que voy a dar mi opinión.

No creo que tenga mayor importancia. Imagina cómo se ve el mundo de la interfaz.

public interface RunnableFuture<V> extends Runnable, Future<V> { }

Aunque es perfectamente válido, no indica claramente su propósito. Entonces, en mi opinión, solo se ha proporcionado para una fácil comprensión del método run() específico de la interfaz RunnableFuture . Para que sepa poner su lógica ejecutable anulando el método run() .

Otro punto en el que puedo pensar es que Runnable es una de las primeras interfaces y si ves el método run () es

public abstract void run();

y public palabras clave public y abstract son redundantes, ya que los métodos en una interfaz son, por defecto, public y abstract . Improvisar esta podría ser una de las razones.

Mientras revisaba el JDK 7, encontré que java.util.concurrent.RunnableFuture<V> tiene un método de ejecución. Me pregunto cuál es el significado de duplicar la misma firma de método de ejecución en la interfaz cuando ya se extiende Runnable .

package java.util.concurrent; public interface RunnableFuture<V> extends Runnable, Future<V> { /** * Sets this Future to the result of its computation * unless it has been cancelled. */ void run(); }


Se define en la interfaz para que puedan adjuntar RunnableFuture específico para RunnableFuture . No hay importancia técnica .