CSemaphore

CSemaphore 클래스의 개체가 나타내는 "세마포"-리소스에 액세스 하려면 하나 이상의 프로세스에서 제한 된 수의 스레드를 허용 하는 동기화 개체. CSemaphore 개체 수 현재 지정된 된 리소스에 액세스 하는 스레드 수를 유지 합니다.

세마포는만 제한 된 수의 사용자를 지원할 수 있는 공유 리소스에 대 한 액세스를 제어 하는 데 유용 합니다. CSemaphore 개체의 현재 count는 허용 하는 추가 사용자 수입니다. 이 횟수가 0 일 때 CSemaphore 개체에 의해 제어 되는 리소스를 사용 하는 모든 시도 시스템 큐에 삽입 됩니다 및 그들 때까지 기다리는 중 시간 초과 또는 카운트 0 이상으로 상승. CSemaphore 개체의 건설 기간 동안 제어 된 리소스를 한 번에 액세스할 수 있는 사용자의 최대 수를 지정。

CSemaphore 개체를 사용 하려면 필요할 때 CSemaphore 개체를 생성 합니다. 대기, 하고자 하는 세마포의 이름을 지정 하 고 응용 프로그램 처음 그것을 소유 해야 합니다. 그런 다음 생성자에서 반환 될 때 세마포를 액세스할 수 있습니다. CSyncObject::Unlock 를 호출 하 여 완료 되 면 제어 된 리소스에 액세스。

CSemaphore 개체를 사용 하 여 대체 방법을 제어 하려는 클래스에 데이터 멤버로 CSemaphore 형식의 변수를 추가 하는 것입니다. 제어 개체의 건설 기간 동안 CSemaphore 데이터 멤버 초기 액세스 개수, 최대 액세스 횟수, 세마포 (해당 되는 경우 프로세스 경계에 걸쳐 사용 될 것입니다)의 이름을 지정 하 고 원하는 보안 특성의 생성자 호출。

리소스 contolled 이와에서 CSemaphore 개체에 액세스 하려면 먼저 만든 CSingleLocktype의 변수 또는 CMultiLock을 입력 귀하의 리소스 액세스 멤버 함수에서. 그런 다음 잠금 개체의 Lock 멤버 함수 (예를 들어, CSingleLock::Lock)를 호출 합니다. 이 시점에서 스레드 것입니다 하거나 리소스에 액세스할 발표 될 및 액세스, 또는 출시 될 리소스와 리소스에 액세스 하지 못하는 시간 초과 대 한 대기 리소스에 대 한 대기. 어떤 경우에, 귀하의 리소스는 스레드로부터 안전한 방식으로 읽혔습니다. 리소스를 해제 하기 위해 사용 하는 잠금 개체의 잠금 멤버 함수 (예를 들어, CSingleLock::Unlock), 또는 잠금 개체가 범위를가를 수 있도록。

또는 독립형, CSemaphore 개체를 만들 하 고 제어 된 리소스에 액세스 하기 전에 명시적으로 액세스할 수 있습니다. 소스 코드를 읽는 사람에 게 명확 하 게 하는 동안이 메서드는 오류 하는 경향이。

CSemaphore 개체를 사용 하는 방법에 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 다중 스레딩: 동기화 클래스 사용 방법 Visual c + + 프로그래머 가이드。

# include lt;afxmt.h>

클래스 멤버 |nbsp; 기본 클래스 (ko) | 계층 구조 차트(&N)

샘플nbsp; MFC 샘플 뮤텍스(&N)

Index