Pregunta

¿Qué ocurre cuando un hilo no puede adquirir un semáforo (debido a la falta de permiso). Va a ser trasladado al estado de espera?

EDIT:. Será el comienzo de la rosca reanudar la secuencia de ejecución anterior, cuando el semáforo esté disponible

¿Fue útil?

Solución

¿Qué pasa cuando un hilo no puede adquirir un semáforo (debido a la falta de permiso). Va a ser trasladado al estado de espera?

Sí. Si estás hablando java.util.concurrent.Semaphore (y el método aquire esto es lo que sucede:

adquiere un permiso de este semáforo, el bloqueo hasta que uno está disponible, o el hilo se interrumpe.

[...]

Si no hay ningún permiso está disponible, entonces el hilo actual queda incapacitado para fines de programación hilo y permanece latente hasta que una de estas dos cosas:

  • Algunos otro hilo invoca el método de liberación () para este semáforo y el hilo de corriente es al lado de ser asignado un permiso; o

  • Algunos otro hilo interrumpe el flujo actual.

tryAquire será sin embargo, como su nombre indica, sólo se tratará de adquirir la cerradura, y en lugar de bloquear falsa declaración si no disponga de permiso.

¿El comienzo de la rosca reanudar la secuencia de ejecución anterior, cuando el semáforo esté disponible.

Sí. Si otro subproceso llama release este hilo se puede volver de acquire y continuarlo de ejecución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top