2012-03-20 11 views

cevap

8

Evet. (Karıştırılabilecek imo adlandırılır) release yöntem izni artırmak için kullanılabilir, çünkü dokümanlardan: Başka bir deyişle

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. 

: iplik çağrı değil varsa

semaphore.release(10); 

10 daha izinleri ekler misin herhangi birini aldı.

+0

thx master! işe yarıyor! – KilyenOrs

+0

+1 Güzel gözlem. Ancak, bu uygulama hakkına özgüdür? Semaforun yapıcıda tanımlanan maksimumu geçmesi için herhangi bir zorunluluk yoktur, bu daha sonraki sürümlerde bu işlevselliği kaldırabilen bir uygulama olabilir –

+3

@JohnVint - Bu, yapıcıda bir maksimum parametre değildir. 'başlangıç ​​izinleri mevcut sayısı. Bu değer olumsuz olabilir, bu durumda, herhangi bir satın almalar gerçekleşmeden önce sürümlerin yayınlanması gerekir. Negative Negatif bir maksimum, aptalca olabilir .. – Ishtar