Inhaltsverzeichnis
Sin embargo, ni el Subproceso ni el Proceso por defecto proporcionan una simple mecanismo para obtener un resultado de tal operación independiente. esto puede no ser un problema ya que las operaciones pueden ser autónomas; por ejemplo, pueden obtener datos desde la base de datos o desde la fecha de hoy y luego actualizó una interfaz de usuario. Sin embargo, en muchos situaciones, el cálculo devolverá un resultado que debe ser manejado por el código de invocación original (la persona que llama). Esto podría implicar realizar una ejecución prolongada cálculo y luego usar el resultado devuelto para generar otro valor o actualizar otro objeto etc Un futuro es una abstracción que simplifica la definición y ejecución de tales tareas concurrentes. Los futuros están disponibles en muchos idiomas diferentes, incluidos Python, pero también Java, Scala, C++, etc. Cuando se usa un futuro; un objeto invocable (como como una función) se pasa al futuro que ejecuta el comportamiento ya sea como un Subproceso separado o como un Proceso separado y luego puede devolver un resultado una vez que es generado. El resultado puede manejarse mediante una función de devolución de llamada (que se invoca cuando el resultado está disponible) o mediante una operación que esperará a que se obtenga un resultado. proporcionó. 33.3 Futuros en Python La biblioteca concurrent.futures se introdujo en Python en la versión 3.2 (y también está disponible en Python 2.5 en adelante). Los futuros concurrentes biblioteca proporciona la clase Future y una API de alto nivel para trabajar con Futures. La clase concurrent.futures.Future encapsula la clase asíncrona ejecución de un objeto invocable (por ejemplo, una función o método). La clase Future proporciona una variedad de métodos que se pueden usar para obtener información sobre el estado del futuro, recuperar resultados o cancelar el futuro: • cancel() Intento de cancelar el futuro. Si el futuro está siendo actualmente ejecutado y no se puede cancelar, entonces el método devolverá False, de lo contrario la llamada se cancelará y el método devolverá True. • cancelled() Devuelve True si el Future se canceló con éxito. • running() Devuelve True si Future se está ejecutando actualmente y no puede ser cancelado • done() Devuelve True si el futuro se canceló o finalizó con éxito correr. • result(timeout=None) Devuelve el valor devuelto por el Future. Si el El futuro aún no se ha completado, entonces este método esperará hasta los segundos de tiempo de espera. Si la llamada no se ha completado en segundos de tiempo de espera, entonces aparecerá un TimeoutError aumentó. timeout puede ser un int o un float. Si no se especifica el tiempo de espera o Ninguno, no hay límite para el tiempo de espera. Si el futuro se cancela antes de completar entonces se generará CancelledError. Si se genera la llamada, este método plantear la misma excepción. 396 33 Futuros
popular post
Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
WeiterlesenTemas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Weiterlesen• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.
Weiterlesen