preloader

1 de enero de 1 | 2 minutos de lectura
Índice de contenido

El resultado de una ejecución de ejemplo de este programa es: Principal - Inicio Main - Creando el objeto DataResource DataResource - Inicializar los datos vacíos DataResource: configuración del objeto Condition Main - Crear los subprocesos de consumo Main - Crear el hilo del productor Principal: inicio de subprocesos de consumo DataResource: iniciando el método del consumidor en Consumer1 DataResource: iniciando el método del consumidor en Consumer2 Principal: subproceso de productor inicial DataResource: método de productor inicial DataResource: datos de configuración del productor Principal - Listo DataResource: el productor notifica todos los subprocesos en espera DataResource: el recurso está disponible para Consumer1 DataResource - Datos leídos en Consumer1: 36 DataResource: el recurso está disponible para Consumer2 DataResource - Datos leídos en Consumer2: 36 32.7 Semáforos de Python La clase Python Semaphore implementa el modelo de semáforo de conteo de Dijkstra. En general, un semáforo es como una variable entera, su valor está destinado a representan una serie de recursos disponibles de algún tipo. Normalmente hay dos operaciones disponibles en un semáforo; estas operaciones son adquirir() y re- lease() (aunque en algunas bibliotecas los nombres originales de Dijkstra de p() y v() se utilizan, estos nombres de operaciones se basan en las frases holandesas originales). • La operación adquirir() resta uno del valor del semáforo, a menos que el valor sea 0, en cuyo caso bloquea el subproceso de llamada hasta que el el valor del semáforo aumenta por encima de 0 de nuevo. • La operación signal() suma uno al valor, indicando una nueva instancia de el recurso se ha agregado al grupo. Tanto el threading.Semaphore como el multiprocessing.Semaphore Las clases también admiten el Protocolo de gestión de contexto. Un parámetro opcional usado con el constructor Semaphore da la inicial valor para el contador interno; por defecto es 1. Si el valor dado es menor que 0, Se genera ValueError. El siguiente ejemplo ilustra 5 subprocesos diferentes, todos ejecutando el mismo función trabajador(). La función trabajador() intenta adquirir un semáforo; si lo hace y luego continúa en el bloque de instrucciones with; si no lo hace, espera hasta que puede adquirirlo. Como el semáforo se inicializa a 2, solo puede haber dos hilos que puede adquirir el Semáforo a la vez. 388 32 Sincronización entre subprocesos/procesos

comments powered by Disqus

popular post

El modelo AR de series temporales univariadas

Resumen: En esta entrada, descubrirá el modelo AR: El modelo autorregresivo.

Leer más

Evaluación de modelos para pronosticar

Resumen: Al desarrollar modelos de aprendizaje automático, generalmente se comparan varios modelos durante la fase de construcción.

Leer más

Modelos para pronosticar

Resumen: El pronóstico, traducido groseramente como la tarea de predecir el futuro, ha estado presente en la sociedad humana durante siglos.

Leer más