Saltar al contenido

cómo saber el valor del semáforo de Python

Tenemos la mejor respuesta que hallamos por todo internet. Nosotros esperamos que te sirva de ayuda y si deseas comentarnos algo que nos pueda ayudar a mejorar hazlo con total libertad.

Solución:

Las otras respuestas son correctas, pero para quien llega a esta página para saber realmente cómo obtener el valor del semáforo, puede hacerlo así:

>>> from threading import Semaphore
>>> sem = Semaphore(5)
>>> sem._Semaphore__value
5
>>> sem.acquire()
True
>>> sem._Semaphore__value
4

ser consciente que el _Semaphore__ que antepone el nombre de la variable value significa que este es un detalle de implementación. No escriba código de producción basado en esta variable, ya que puede cambiar en el futuro. Además, no intente editar el valor manualmente, de lo contrario… cualquier cosa mala puede pasar.

En python3.6, puedes obtener algo así:

from threading import Semaphore
sem = Semaphore(5)
print(sem._value)

Este valor es útil para depurar

Los semáforos están diseñados en torno a la idea de que los subprocesos toman uno y esperan hasta que esté disponible, porque en realidad no es predecible en qué orden se adquirirán.

El contador no forma parte de la abstracción llamada ‘Semáforo’. No se garantiza que su acceso al contador de semáforos sea atómico. Si pudieras echar un vistazo al contador y otro subproceso adquiere el semáforo antes de que hagas algo con él, ¿qué deberías hacer?

Sin descifrar su código, no puede saber el valor.

valoraciones y reseñas

Ten en cuenta difundir este ensayo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *