pthread_create시 attr 속성

2019. 10. 21. 22:44임베디드/리눅스시스템프로그래밍

pthread_create는 다음과 같이 정의가 되어있고, 순서대로 thread 주소, 속성, 루틴 함수, 루틴 함수의 매개변수가 담겨져 있다

#include <pthread.h>

int
pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);

 

attr에 대한 구조체 주소를 넘겨주면 내부적으로는 int pthread_attr_init(pthread_attr_t *attr) 함수가 호출된다. 아래 속성은 man page에서 따온 속성값으로, 프로그래밍적으로 아래 옵션들을 적용해서 스레드를 생성할 수 있다

 

 

1. detach 가능한 스레드 생성

2. 스케쥴링 정책과 우선순위 설정 가능

3. 스택 사이즈 변경 가능

 

예를 들어 detach 스레드 생성시엔 다음과 같이 작성할 수 있다

pthread_attr_t attr;

pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

pthread_attr_destory(&attr);

 

이외에도 속성 관련한 함수가 많아, 유용하게 활용할 수 있다

 

[출처] http://man7.org/linux/man-pages/man3/pthread_create.3.html