CompletableFuture proporciona cuatro métodos estáticos para crear una operación asíncrona.
Los métodos estáticos son los siguientes:
CompletableFuture runAsync (runnable Ejecutable);
CompletableFuture runAsync (runnable Ejecutable, Ejecutor ejecutor);
CompletableFuture supplyAsync (proveedor Proveedor);
CompletableFuture supplyAsync (proveedor, el proveedor de Ejecutor ejecutor);
runAsync y supplyAsync diferencia entre los dos:
runAsync método no es compatible con los valores de retorno.
supplyAsync puede soportar el valor de retorno.
Ejecutor Descripción:
Si el método existe parámetros ejecutor, utilice el ejecutor para realizar tareas;
De lo contrario, utilice ForkJoinPool.commonPool común () como el grupo de subprocesos de ejecución de tareas por defecto asíncrona.
Ejemplos de una
public static void Main (args String []) throws ExecutionException, InterruptedException {
CompletableFuture futuro = CompletableFuture.runAsync (() -> System.out.println ( "Hola mundo"));
System.out.println (future.get ());
}
Los resultados:
Hola Mundo
nulo
Ejemplo dos
public static void Main (args String []) throws ExecutionException, InterruptedException {
ExecutorService ejecutor = Executors.newCachedThreadPool ();
CompletableFuture futuro = CompletableFuture.runAsync (() -> System.out.println ( "Hola mundo"), ejecutor);
System.out.println (future.get ());
} Zhengzhou flujo del hospital http://www.zyfuke.com/
Los resultados:
Hola Mundo
nulo
ejemplo tres
public static void Main (args String []) throws ExecutionException, InterruptedException {
// obtener la fecha y hora actual
CompletableFuture futuro = CompletableFuture.supplyAsync (Sistema :: currentTimeMillis);
System.out.println (future.get ());
}
Los resultados:
1586245295714
Ejemplo cuatro
public static void Main (args String []) throws ExecutionException, InterruptedException {
// obtener la fecha y hora actual
ExecutorService ejecutor = Executors.newCachedThreadPool ();
CompletableFuture futuro = CompletableFuture.supplyAsync (Sistema :: currentTimeMillis, ejecutor);
System.out.println (future.get ());
}
Los resultados:
1586245295714