2012-03-20 14 views

Respuesta

8

Sí. El método release (confusamente llamado OMI) se puede utilizar para aumentar los permisos, ya que, a partir de los documentos:

There is no requirement that a thread that releases a permit must 
have acquired that permit by calling acquire. 
Correct usage of a semaphore is established by programming convention 
in the application. 

En otras palabras:

semaphore.release(10); 

a añadir 10 permite más si el hilo no tiene vocación adquirido alguno.

+0

thx master! ¡funciona! – KilyenOrs

+0

+1 Buena observación. Sin embargo, esto es específico para la implementación ¿no? No hay ningún requisito para que el semáforo se incremente más allá del máximo definido en el constructor, es decir, una implementación puede cambiar en versiones posteriores eliminando esta funcionalidad –

+3

@JohnVint - No es un parámetro máximo en el constructor. 'la cantidad inicial de permisos disponibles. Este valor puede ser negativo, en cuyo caso las liberaciones deben ocurrir antes de que se otorgue cualquier adquisición. Un máximo negativo sería algo tonto. – Ishtar

Cuestiones relacionadas