
SyncSemaphore::lock은 동기화를 위해 사용하는 함수입니다. 동기화 대상은 프로세스나 스레드 간의 자원 공유를 위한 메모리 영역입니다.
SyncSemaphore::lock을 사용하는 이유는 프로세스나 스레드 간의 자원 접근을 제어하기 위해서입니다. 하나의 프로세스나 스레드가 자원에 접근하는 동안 다른 프로세스나 스레드가 접근하는 것을 방지하여, 데이터의 일관성을 유지하기 위함입니다.
SyncSemaphore::lock은 프로세스나 스레드가 자원에 접근하기 전에 lock을 설정하고, 접근이 끝난 후 unlock을 설정하여 다른 프로세스나 스레드가 접근할 수 있도록 합니다.
예를 들어, 여러 프로세스나 스레드가 공유 변수에 접근하는 경우, SyncSemaphore::lock을 사용하여 하나의 프로세스나 스레드만 접근할 수 있도록 하여 데이터의 일관성을 유지할 수 있습니다.
SyncSemaphore::lock을 사용하는 예시 코드는 다음과 같습니다.
#hostingforum.kr
cpp
#include
#include
sem_t semaphore;
void* thread_func(void* arg) {
sem_wait(&semaphore); // lock 설정
// 공유 변수에 접근하는 코드
sem_post(&semaphore); // unlock 설정
return NULL;
}
int main() {
sem_init(&semaphore, 0, 1); // semaphore 초기화
pthread_t thread;
pthread_create(&thread, NULL, thread_func, NULL);
pthread_join(thread, NULL);
return 0;
}
위 코드에서 sem_wait 함수는 lock을 설정하고, sem_post 함수는 unlock을 설정하여 다른 프로세스나 스레드가 접근할 수 있도록 합니다.
2025-03-20 17:15