Embedded Linux

기본적인 pthread 사용법 정리

깍수 2014. 8. 22. 14:50

gcc로 컴파일 할 경우 -D_REENTRANT상수을 선언 하여 Thread_safe함수를 사용할 수 있도록 옵션을 꼭 사용해야

하며 -lpthread 이와 같이 Library를 링크 시켜야 한다.


* int pthread_create(pthread_t *thread, 

   pthread_attr_t *attr, 

   void *(*start_rountine)(void *), 

   void *arg

   );

Parameter attr의 경우 일반적으로 NULL 값을 사용한다.


* int pthread_join(pthread_t thread, void **retval);

Window programming에서 WaitForSingleObject() 함수와 유사한 기능을 하는 것으로 보인다.

아래와 같이 해당 thread_function이 종료가 될 때까지 main() 함수는 대기 하게 된다.

#include <pthread.h>


static void *handle_function(void *arg);


int main(int argc, char **argv)

{

    pthread_t thread_id;

    void *thread_retval;

    .

    .

    state = pthread_create(&thread_id, NULL, handle_function, NULL);

    .

    .

    state = pthread_join(thread_id, &thread_retval);

    .

    .

    return 0;

}


static void *handle_function(void *arg)

{


}