출처 : http://hkpco.egloos.com/898623
유닉스 시스템 계열에서 제공되는 pthread에서 동기화를 위하여 mutex라는 것이 자주 사용되는데,
mutex 변수 초기화 시에 사용되는 방법이 대표적으로 두 가지 정도가 있습니다.
(원래는 더 많지만 "가장" 기본적인 초기화를 기준으로)
그 중 하나가 바로 PTHREAD_MUTEX_INITIALIZER 이며, 해당 mutex를 default 속성으로 초기화 시켜줍니다.
pthread.h 헤더에 다음과 같이 정의되어 있습니다.
==============================================================
#define PTHREAD_MUTEX_INITIALIZER \
{0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_INITIALIZER}
==============================================================
사용법은 다음과 같습니다.
----------------------------------------------------------------------
pthread_mutex_t mutx = PTHREAD_MUTEX_INITIALIZER;
int main( void )
{
return 0;
}
----------------------------------------------------------------------
PTHREAD_MUTEX_INITIALIZER 사용시 주의할 점은 pthread_mutex_t type이 구조체 형태로 이루어져 있기 때문에
변수 선언 이후에는 사용할 수 없으며(다시말해, 선언과 동시에만 사용이 가능함), static mutex 전용이라는 것입니다.
즉, dynamic mutex 에서는 다른 방법을 사용해야 하는데, 이전에 말한 mutex 변수 초기화의 나머지 방법에 해당됩니다.
다음과 같은 초기화 함수를 사용할 수 있습니다.
=============================================================================
#include <pthread.h>
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex-attr_t *mutexattr);
=============================================================================
첫 번째 인자는 mutex 변수, 두 번째 인자는 속성 정보를 뜻하며,
두 번째 인자가 NULL일 경우 default로 설정됩니다.
함수 사용은 static과 dynamic mutex 모두에 적용 가능하며,
static은 좀전에 보여주었기 때문에 이번엔 dynamic mutex로 예를들어 초기화하여 보겠습니다.
------------------------------------------------------------------------
int main( void )
{
pthread_mutex_t *mutx_p;
mutx_p = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
pthread_mutex_init( mutx_p, NULL );
free(mutx_p);
return 0;
}
------------------------------------------------------------------------
지금까지 기본적인 mutex 변수의 초기화 방법을 알아보았습니다.
유닉스 시스템 계열에서 제공되는 pthread에서 동기화를 위하여 mutex라는 것이 자주 사용되는데,
mutex 변수 초기화 시에 사용되는 방법이 대표적으로 두 가지 정도가 있습니다.
(원래는 더 많지만 "가장" 기본적인 초기화를 기준으로)
그 중 하나가 바로 PTHREAD_MUTEX_INITIALIZER 이며, 해당 mutex를 default 속성으로 초기화 시켜줍니다.
pthread.h 헤더에 다음과 같이 정의되어 있습니다.
==============================================================
#define PTHREAD_MUTEX_INITIALIZER \
{0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_INITIALIZER}
==============================================================
사용법은 다음과 같습니다.
----------------------------------------------------------------------
pthread_mutex_t mutx = PTHREAD_MUTEX_INITIALIZER;
int main( void )
{
return 0;
}
----------------------------------------------------------------------
PTHREAD_MUTEX_INITIALIZER 사용시 주의할 점은 pthread_mutex_t type이 구조체 형태로 이루어져 있기 때문에
변수 선언 이후에는 사용할 수 없으며(다시말해, 선언과 동시에만 사용이 가능함), static mutex 전용이라는 것입니다.
즉, dynamic mutex 에서는 다른 방법을 사용해야 하는데, 이전에 말한 mutex 변수 초기화의 나머지 방법에 해당됩니다.
다음과 같은 초기화 함수를 사용할 수 있습니다.
=============================================================================
#include <pthread.h>
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex-attr_t *mutexattr);
=============================================================================
첫 번째 인자는 mutex 변수, 두 번째 인자는 속성 정보를 뜻하며,
두 번째 인자가 NULL일 경우 default로 설정됩니다.
함수 사용은 static과 dynamic mutex 모두에 적용 가능하며,
static은 좀전에 보여주었기 때문에 이번엔 dynamic mutex로 예를들어 초기화하여 보겠습니다.
------------------------------------------------------------------------
int main( void )
{
pthread_mutex_t *mutx_p;
mutx_p = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
pthread_mutex_init( mutx_p, NULL );
free(mutx_p);
return 0;
}
------------------------------------------------------------------------
지금까지 기본적인 mutex 변수의 초기화 방법을 알아보았습니다.
Casino Slot Machine - MapyRO
답글삭제Casino 여수 출장샵 Slot Machine. Free Slot Machine 강릉 출장샵 Map: 0.1.7M. No 경상북도 출장마사지 download required. 1-10 of 1. MapyRO Casino 구리 출장샵 Slot Machine. 수원 출장안마