Mostrando entradas con la etiqueta callable. Mostrar todas las entradas
Mostrando entradas con la etiqueta callable. Mostrar todas las entradas

JAVA ASINCRONO

Posted: martes, 24 de diciembre de 2013 by Skuarch in Etiquetas: , , , , ,
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;
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);
     
        FutureTask future = 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");      
    }
}
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