2
라이브러리의 함수가 있고 재진입 가능하지 않다는 것을 알고 있다면 어떻게 스레드 환경 (POSIX)에서 사용하겠습니까? 라이브러리의 소스 코드에 액세스 할 수 없습니다.C에서 재진입과 관련하여
라이브러리의 함수가 있고 재진입 가능하지 않다는 것을 알고 있다면 어떻게 스레드 환경 (POSIX)에서 사용하겠습니까? 라이브러리의 소스 코드에 액세스 할 수 없습니다.C에서 재진입과 관련하여
뮤텍스로 감쌀 수 있습니다. 다음은 예제 사용법입니다.
pthread_mutex_t f_func_mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_lock(&f_func_mutex);
f_func();
// if f_func has "side effects", such as setting a global, you'll want to grab
// the value within the locked region:
int local = global_set_by_f_func;
pthread_mutex_unlock(&f_func_mutex);
잡았어, 고마워. –
공유 리소스로 모델링하고 뮤텍스 (또는 유사)로 묶어야합니다. –
좀 더 자세하게 설명해주세요. –
명확해야 할 부분은 무엇입니까? "공유 자원", "뮤텍스", 다른 것? –