4
나는 자바 세마포어 클래스 drainPermits의 계약을 이해하려고 노력 중이 야허가가없는 경우 Semaphor.drainPermits는 어떤 작업을합니까?
Javadoc가 단순히 읽
공공 INT drainPermits()
Acquire and return all permits that are immediately available. Returns: the number of permits
에는 허가가없는 경우를 현재 사용 가능합니까? 차단 될 때까지 기다렸다가 사용할 수 있습니까?
누군가가 잠금을 위해 코드를 사용하고있는 것처럼 보이는 코드를 검토하고 있다면, 그들은 놀랍지 않은 놀라움에 처하게 될 것입니다. 맞습니까? – Uri
정확히 무엇을하는지에 따라 다릅니다. "잠금을 위해 사용"은 실제로 많은 힌트를 제공하지 않습니다. –
1로 초기화하고 드레인을 사용하여 "tryAcquire"를 구현하면 괜찮습니다. 많은 다른 언어와 시스템에서 (비 중첩) 뮤텍스의 많은 구현은 1로 초기화 된 세마포어입니다. – pgast