1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import threading lectores = 0 mutex = threading.Semaphore(1) cuarto_vacio = threading.Semaphore(1) def escritor(): cuarto_vacio.acquire() escribe() cuarto_vacio.release() def lector(): mutex.acquire() lectores = lectores + 1 if lectores == 1: cuarto_vacio.acquire() mutex.release() lee() mutex.acquire() lectores = lectores - 1 if lectores == 0: cuarto_vacio.release() mutex.release() |