Releases a permit, increasing the number of available permits by one. If any threads in the cluster are trying to acquire a permit, then one is selected and given the permit that was just released.
There is no requirement that a thread that releases a permit must have acquired that permit by calling one of the {@link #acquire() acquire} methods.Correct usage of a semaphore is established by programming convention in the application.