preloader

1 janvier 1 | 3 minutes de lecture
Index du contenu

La clase Barrera en sí proporciona varios métodos que se utilizan para gestionar o averiguar Información sobre la barrera: Método Descripción esperar (tiempo de espera = ninguno) Espere hasta que todos los subprocesos hayan notificado la barrera (a menos que se agote el tiempo de espera). alcanzado): devuelve el número de subprocesos que pasaron la barrera reiniciar() Devolver la barrera al estado predeterminado abortar() Poner la barrera en un estado roto fiestas Devuelve el número de subprocesos necesarios para pasar la barrera. n_esperando Número de subprocesos actualmente en espera Un objeto Barrera se puede reutilizar cualquier número de veces para el mismo número de Hilos. El ejemplo anterior podría cambiarse fácilmente para que se ejecute usando Proceso alterando la declaración de importación y la creación de un conjunto de Procesos en lugar de Subprocesos: desde multiprocesamiento importación Barrera, Proceso … print(‘Principal - Inicio’) b = Barrera (3, devolución de llamada) t1 = Proceso (objetivo = imprimir_it, args = (‘A’, b)) Tenga en cuenta que solo debe usar subprocesos con un threading.Barrier. Sucesivamente solo debe usar Procesos con una barrera de multiprocesamiento. 32.3 Señalización de eventos Aunque el punto de usar varios subprocesos o procesos es ejecutar por separado operaciones al mismo tiempo, hay ocasiones en las que es importante poder permitir que dos o más subprocesos o procesos para cooperar en el momento de su comportamiento. El El objeto de barrera presentado anteriormente es una forma de nivel relativamente alto para hacer esto; sin embargo, en algunos casos se requiere un control de grano más fino. El threading.Event o multiprocesamiento. Las clases de eventos se pueden usar para este propósito. Un Evento administra una bandera interna que las personas que llaman pueden establecer () o borrar (). Otros subprocesos pueden esperar () a que se establezca la bandera (), bloqueando efectivamente sus propios hilos. progreso hasta que el Evento le permita continuar. La bandera interna se establece inicialmente en Falso, lo que garantiza que si una tarea llega al evento antes de que se configure, debe esperar. De hecho, puede invocar la espera con un tiempo de espera opcional. Si no incluye el tiempo de espera opcional, entonces esperar () esperará para siempre, mientras que esperar (tiempo de espera) esperará hasta el tiempo de espera dado en segundos. Si se alcanza el tiempo de espera, entonces la espera el método devuelve Falso; de lo contrario, espera devuelve True. Como ejemplo, el siguiente diagrama ilustra dos procesos que comparten un evento objeto. El primer proceso ejecuta una función que espera a que se establezca el evento. A su vez el segundo proceso ejecuta una función que establecerá el evento y así liberará la espera proceso. 380 32 Sincronización entre subprocesos/procesos

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Lire plus

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Lire plus

• 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.

Lire plus