Semaforos: Es una solucion para el problema de mutual exclution.
Los semaforos binario tambien se llama mutex
Barreras: Todos los threads deben llegar a un punto de sincronizacion para poder avanzar.
Monitores
Varibales Condicionales:

Diapositivas
Notas
5.1-sincronizacion_annotated.pdf
5.3-ejemplos-semaforos-y-monitores_annotated.pdf
Cap 7: Principles of concurrent programming 2nd Edition https://drive.google.com/file/d/1dR9sD1dg5r5_lT58oqlusJMT7_2iSnWm/view?usp=drive_link
use std_semaphore::Semaphore;
let sem = Semaphore::new(Num_recursos); // Indico cuantos recursos tengo disp
let mutex = Semaphore::new(1); // Semaforo con un solo recurso es un Mutex
// wait
sem.acquire(); // Acquire one of the resources
// signal
sem.release(); // Release our initially acquired resource
// wait + signal (al salir del bloque)
// Acquire one of the resources for a limited period of time
{
let _guard = sem.access();
// ...
} // resources is released here
https://drive.google.com/file/d/1RAzdD0V__jM7VW-MPsNDT7gqRSdN2v1F/view?pli=1