JAVA ASINCRONO
Posted: martes, 24 de diciembre de 2013 by Skuarch in Etiquetas: asincrono, callable, future, futuretask, java, threads
0
En ocaciones es necesario realizar ciertas tareas en hilos, pero los hilos son void entonces como puedes hacer que una tarea regrese algo y que corra en un hilo, voy a explicar como hacer esto con las clases de java Callable y Future en el codigo se puede entender mejor
import java.util.concurrent.Callable;cuando corrar este programa te podras dar cuenta que aparece primero el texto continue y despues aparece inside of call, esto es por que se realizo un trozo de codigo asincrono
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
public class TestCallable {
public static void main(String[] args) throws InterruptedException, ExecutionException {
final StringBuilder stringBuilder = new StringBuilder();
ExecutorService executorService = Executors.newFixedThreadPool(1);
FutureTaskfuture = new FutureTask (new Callable () {
@Override
public String call() throws InterruptedException {
Thread.sleep(1000);
System.out.println("inside of call");
stringBuilder.append("something");
return "hello";
}
});
executorService.execute(future);
executorService.shutdown();
System.out.println("continue");
}
}