pthread_create

2019. 5. 12. 00:41임베디드/리눅스시스템프로그래밍

쓰레드들은 code, data, files을 하나로 공유하면서 각각의 프로그램 동작을 위한 개별적으로 register와 stack을 가지게 된다. 그래서 data나 파일 디스크립터같은 경우는 동기화 측면에서 중요하게 다루게 된다. 이를 위해 사용하는 도구는 대표적으로 mutex가 있다

 

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

thread : thread ID 주소

attr : 부여할 특성 전달, 보통 NULL

start_routine : 스레드 메인 함수 역할을 하는 함수 포인터를 전달

arg : (void *)의 변수 주소값 전달


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

thread : thread ID, ID가 종료되지 않을 때까지 함수는 반환하지 않는다

retval : 스레드가 반환하는 값의 주소값, NULL 가능

 

Compile and link with -pthread.

https://github.com/surinoel/Linux-SP/blob/master/thread.c