Cuando esperar para resultado de Scala futuro, se comporta más como reciben, o como reaccionan, es decir, no se bloquee un hilo, o una continuación después de los horarios resultado si está disponible?¿Espera a que Scala Future bloquee el hilo?
7
A
Respuesta
15
Sí, en stdlib bloquea el hilo y espera resultados sincrónicamente. Si desea aplicar el estilo de continuación de paso a futuros, debería usar Akka o Scalaz que permiten agregar ganchos en la finalización de futuros directamente desde la caja.
Akka:
val f1 = Future { Thread.sleep(1000); "Hello" + "World" }
val f2 = f1 map { _.length }
f2 foreach println //Done asynchronously and non-blocking
mismo con Scalaz:
scala> val f1 = promise {Thread.sleep(1000); "Hello" + "World"}
f1: scalaz.concurrent.Promise[java.lang.String] = [email protected]
scala> val f2 = f1 map{str => str.length}
f2: scalaz.concurrent.Promise[Int] = [email protected]
scala> f2.map(println)
10
res5: scalaz.concurrent.Promise[Unit] = [email protected]
1
Debe bloquear el hilo actual, pero si el hilo de trabajo está bloqueado, depende.
Cuestiones relacionadas
- 1. ¿Qué sucede cuando un Scala "Future" es basura recolectada?
- 2. Android: ¿es posible que el hilo de fondo se bloquee hasta que el hilo de UI termine de funcionar?
- 3. ¿Hay alguna manera fácil de convertir Future <Future<T>> en Future <T>?
- 4. Delphi hilo que espera datos, los procesa y luego vuelve a la espera
- 5. ¿Espera sin bloquear el hilo? - ¿Cómo?
- 6. ¿Cómo puedo obtener las excepciones lanzadas en un Scala Future?
- 7. Cómo hacer que ChildWindow bloquee
- 8. ¿Cómo mantener el hilo espera en ScheduledExecutorService que ha sido apagado
- 9. ¿Mantener el hilo en espera es óptimo?
- 10. Cómo evitar que Admob bloquee el subproceso UI
- 11. hilo de espera hasta que se haya producido una condición
- 12. CUDA Principiante - Espera a que finalice un hilo antes de pasar a
- 13. php get future date time
- 14. espera de hilo de Java y notificar
- 15. removeFromSuperview hace que mi aplicación se bloquee
- 16. ¿Qué condiciones ocasionan que NetworkStream.Write bloquee?
- 17. Prevenir que Tcl se bloquee en el comando desconocido
- 18. AspNetCompatibilityRequirements hace que el servicio web de WCF bloquee
- 19. ¿Cómo esperar a que termine un hilo antes de que comience otro hilo en Java/Android?
- 20. ¿Espera a que terminen todos los hilos en un ejecutor?
- 21. ¿Cómo se asigna el almacenamiento asociado con std :: future?
- 22. Contando con NHibernate + Linq + Future
- 23. Cómo pasar la excepción de un hilo a otro (el que llama) el hilo en Delphi?
- 24. ¿Cómo envuelvo un java.util.concurrent.Future en un Akka Future?
- 25. ¿java.awt.Robot.waitForIdle() espera a que se envíen los eventos?
- 26. Interrumpir/matar a un hilo en ejecución
- 27. ¿Qué hace que IE8 bloquee algunas descargas de archivos?
- 28. ¿Qué hace que Windows Firewall bloquee una aplicación?
- 29. ¿Puedo pasar el método de instancia de un objeto a un método que espera una devolución de llamada en Scala?
- 30. El hilo que llama no puede acceder a este objeto porque lo posee un hilo diferente