ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Codigo de python


Enviado por   •  8 de Noviembre de 2022  •  Tareas  •  1.273 Palabras (6 Páginas)  •  33 Visitas

Página 1 de 6

rom threading import Semaphore, Thread, Lock

numero_de_autos=0

cuenta_motor = 0 #cuentas de elementos independientes

cuenta_seccion_de_chasis = 0

cuenta_seccion_de_transmision = 0

cuenta_llantas = 0

cuenta_pinturas = 0

cuenta_motor_chasis = 0 #cuentas de elementos compuestos

cuenta_transmision_llantas = 0

cuenta_autos_sin_pintura = 0

cuenta_autos = 0

total_motor = 0 #totales de elementos independientes

total_seccion_de_chasis = 0

total_seccion_de_transmision = 0

total_llantas = 0

total_pinturas = 0

total_motor_chasis = 0 #totales de elementos compuestos

total_transmision_llantas = 0

total_autos_sin_pintura = 0

total_autos = 0

mutex_print = Semaphore(1) #mutex para imprimir correctamente

mutex_motor = Semaphore(1) #mutexes de elementos independientes

mutex_seccion_de_chasis = Semaphore(1)

mutex_seccion_de_transmision = Semaphore(1)

mutex_llantas = Semaphore(1)

mutex_pinturas = Semaphore(1)

mutex_motor_chasis = Semaphore(1) #mutexes de elementos compuestos

mutex_transmision_llantas = Semaphore(1)

mutex_autos_sin_pintura = Semaphore(1)

mutex_autos = Semaphore(1)

hay_motor = Semaphore(0) #barreras de elementos independientes

hay_seccion_de_chasis = Semaphore(0)

hay_seccion_de_transmision = Semaphore(0)

hay_llantas = Semaphore(0)

hay_pintura = Semaphore(0)

hay_motor_chasis = Semaphore(0) #barreras de elementos compuestos

hay_transmision_llantas = Semaphore(0)

hay_auto_sin_pintura = Semaphore(0)

mutex_completado = Semaphore(0) #barrera de finalizacion

#LAS FUNCIONES A CONTINUACION SON SIMILARES POR LO QUE SOLO COMENTARE LAS SECCIONES PERTINENTES UNA SOLA VEZ

def constructor_motor():

global mutex_motor, cuenta_motor, total_motor, mutex_print, hay_motor

mutex_motor.acquire() #se protege las variables de cuenta y totales

cuenta_motor = cuenta_motor + 1

total_motor = total_motor + 1

mutex_print.acquire()

print("\n Se construyó el motor numero",total_motor)

mutex_print.release()

mutex_motor.release()

hay_motor.release() #se hace una señalización de que hay motor disponible

def constructor_seccion_de_chasis():

global mutex_seccion_de_chasis, cuenta_seccion_de_chasis, total_seccion_de_chasis, hay_seccion_de_chasis, mutex_print

mutex_seccion_de_chasis.acquire()

cuenta_seccion_de_chasis = cuenta_seccion_de_chasis + 1

total_seccion_de_chasis = total_seccion_de_chasis + 1

mutex_print.acquire()

print("\n Se construyó la seccion de chasis numero",total_seccion_de_chasis)

mutex_print.release()

if(cuenta_seccion_de_chasis > 1):

hay_seccion_de_chasis.release() #aqui tambien se hace una señalización pero con una condicional, por lo que seria un torniquete

mutex_seccion_de_chasis.release()

def constructor_seccion_de_transmision():

global mutex_seccion_de_transmision, cuenta_seccion_de_transmision, total_seccion_de_transmision, hay_seccion_de_transmision, mutex_print

mutex_seccion_de_transmision.acquire()

cuenta_seccion_de_transmision = cuenta_seccion_de_transmision + 1

total_seccion_de_transmision = total_seccion_de_transmision + 1

mutex_print.acquire()

print("\n Se construyó la seccion de transmision numero",total_seccion_de_transmision)

mutex_print.release()

if(cuenta_seccion_de_transmision > 3):

hay_seccion_de_transmision.release()

mutex_seccion_de_transmision.release()

def constructor_llantas():

global mutex_llantas, cuenta_llantas, total_llantas, mutex_print, hay_llantas

mutex_llantas.acquire()

cuenta_llantas = cuenta_llantas + 1

total_llantas = total_llantas + 1

mutex_print.acquire()

print("\n Se construyó la llanta numero",total_llantas)

...

Descargar como (para miembros actualizados)  txt (10 Kb)   pdf (49 Kb)   docx (13 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com