pthread 함수를 쓰기 위해 필요한 헤더 파일
#include<pthread.h>
linux 상에서 컴파일을 하기 위해서는 반드시 -lpthread를 해주어야 한다.
pthread의 함수들
int pthread_create(pthread_t *th_id, const pthread_attr_t *attr, void* 함수명, void *arg);
1. pthread_t : pthread의 자료형이다.
2. *th_id : pthread식별자로 thread가 생성이 된다면, thread 식별값이 주어진다.
3. void *함수명: pthread로 분기할 함수를 칭한다.
4. void * arg: pthread로 분기할 때 넘겨줄 인자의 값이다
(이때, 어떠한 자료형을 넘겨줄지 모르기 때문에 void를 사용하며, 필요에 따라 구조체를 생성하여 인자를 여러개를 전달할 수 있다.)
int pthread_join(pthread_t th_id, void** thread_return);
식별한 pthread가 종료될 때까지 기다리다가
pthread가 종료시 자원을 풀어준다.
1. pthread_t th_id: 어떤 pthread를 기다릴지 구별하는 식별자
2. pthread의 return 값, 포인터로 받아온다.
void pthread_cleanup_push(void* (함수명), void * arg);
pthread_exit()가 호출될 때 호출된 handler를 정하는 함수.
보통 자원을 해제하기 위해서 mutext lock을 풀어준다.
int pthread_detach( pthread_t th_id);
detach = 분리하다.
th_id 값을 가지는 쓰레드가 부모로부터 독립한다.
void pthread_exit(void *ret_value);
현재 실행하고 있는 thread를 종료한다.
void pthread_cleanup_pop(int exec);
설정된 cleanup handler를 제거하기 위해서 사용되는 함수이다.
exec를 0으로 가지는 경우 바로 cleanup handler 제거하고
그외의 값을 가지는 경우 cleanup handler를 한번 실행한 후 제거한다.
pthread_t pthread_self(void);
현재 동작중인 pthread의 식별자를 리턴한다.
※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다
'C_C++ 프로그래밍' 카테고리의 다른 글
thread_exit(쓰레드에서 특정 값을 return을 시키자) (0) | 2019.05.25 |
---|---|
pthread_detach(쓰레드 자원들을 분리시키자) (0) | 2019.05.25 |
pthread_join(쓰레드의 종료를 대기한다) (0) | 2019.05.25 |
pthread_create 예제 (쓰레드 생성) (0) | 2019.05.25 |
댓글