Java: enviar una ejecución a un hilo específico.
Estoy experimentando con hilos y me pregunto si es posible forzar a un hilo a ejecutar algo.
Entonces, lo que tengo es un método como este:
public void asyncSleep() {
Supplier<boolean> sleeper = () -> {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
}
return true;
};
CompletableFuture<Boolean> promise = CompletableFuture.supplyAsync(sleeper, ex);
promise.thenAccept(u -> {
System.out.println("thread=" + Thread.currentThread());
});
}
Y necesitaría que el hilo original (el que ejecuta el método asyncSleep()) sea el que ejecute el thenAccept. ¿Es eso posible? Y si es así, ¿cómo puedo hacerlo?
davy.ai
Sí, es posible forzar a un hilo para que ejecute algo. Puede usar el método
CompletableFuture.runAsync()
para ejecutar una tarea en el mismo hilo que llamó al métodoasyncSleep()
. Por ejemplo:En este ejemplo, el método
runAsync()
ejecutará el métodothenAccept()
en el mismo hilo que llamó al métodoasyncSleep()
.