Semaphore
Hereda: RefCounted < Object
Un mecanismo de sincronización utilizado para controlar el acceso a un recurso compartido por Threads.
Descripción
Un semáforo de sincronización que se puede utilizar para sincronizar múltiples Threads. Inicializado a cero en la creación. Para una versión binaria, consulta Mutex.
Advertencia: Los semáforos deben utilizarse con cuidado para evitar interbloqueos.
Advertencia: Para garantizar que el sistema operativo pueda realizar una limpieza adecuada (sin bloqueos, sin interbloqueos), se deben cumplir estas condiciones:
Cuando el recuento de referencias de un Semaphore llega a cero y, por lo tanto, se destruye, ningún hilo debe estar esperando en él.
Cuando el recuento de referencias de un Thread llega a cero y, por lo tanto, se destruye, no debe estar esperando en ningún semáforo.
Tutoriales
Métodos
void |
|
try_wait() |
|
void |
wait() |
Descripciones de Métodos
Reduce el Semaphore, permitiendo la entrada a un hilo, o más si se especifica count.
Como wait(), pero no se bloqueará, por lo que si el valor es cero, falla inmediatamente y devuelve false. Si no es cero, devuelve true para indicar éxito.
void wait() 🔗
Espera al Semaphore, si su valor es cero, se bloquea hasta que no sea cero.