뮤텍스(mutex)는 쓰레드가 공유하는 데이터 영역을 보호하기 위해서 사용되는 도구이다. pthread_mutex_init는 뮤텍스 객체를 초기화 시키기 위해서 사용한다.
#include <pthread.h> int pthread_mutex_init(pthread_mutex_t * mutex, const pthread_mutex_attr *attr);
첫번째 인자인 mutex는 초기화 시킬 mutex객체이다. 초기화 시킬 때 뮤텍스의 특징을 정의할 수 있는데, 이는 두번째 인자인 attr를 통해서 이루어진다. 기본 뮤텍스 특징을 사용하길 원한다면 NULL을 이용하면 된다.
뮤텍스는 "fast", "recurisev", "error checking"의 3가지 종류중 하나를 선택할 수 있으며, 기본적으로 "fast"가 사용된다.
성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno 값을 설정한다.
뮤텍스가 제대로 초기화 되지 않았다.
뮤텍스가 이미 잠겨있다.("error checking" 뮤텍스의 경우에만 발생)
#include <pthread.h> pthread_mutex_t mutex_lock; ... void *t_function(void *data) { pthread_mutex_lock(&mutex_lock); // critical section pthread_mutex_unlock(&mutex_lock); } int main() { pthread_t p_thread; int state; int a; pthread_mutex_init(&mutex_lock, NULL); pthread_create(&p_thread, NULL, t_function, (void *)&a); ... pthread_join(&pthread, (void **)&status); }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
1장. pthread_mutex_init(3)
뮤텍스(mutex)는 쓰레드가 공유하는 데이터 영역을 보호하기 위해서 사용되는 도구이다. pthread_mutex_init는 뮤텍스 객체를 초기화 시키기 위해서 사용한다.
1.1절. 사용법
1.2절. 설명
첫번째 인자인 mutex는 초기화 시킬 mutex객체이다. 초기화 시킬 때 뮤텍스의 특징을 정의할 수 있는데, 이는 두번째 인자인 attr를 통해서 이루어진다. 기본 뮤텍스 특징을 사용하길 원한다면 NULL을 이용하면 된다.
뮤텍스는 "fast", "recurisev", "error checking"의 3가지 종류중 하나를 선택할 수 있으며, 기본적으로 "fast"가 사용된다.
1.3절. 반환값
성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno 값을 설정한다.
1.4절. 에러
뮤텍스가 제대로 초기화 되지 않았다.
뮤텍스가 이미 잠겨있다.("error checking" 뮤텍스의 경우에만 발생)
1.5절. 예제
관련 글
Recent Posts
Archive Posts
Tags