Skip to content

Instantly share code, notes, and snippets.

@NotRayor
Last active May 13, 2019
Embed
What would you like to do?
안녕

pthread_create

pthread.h에 정의됨

함수 시그니쳐 : int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(start_routine)(void), void *restrict arg);

*restrict 는 restrict 포인터를 의미하며,각 포인터가 서로 다른 메모리 공간을 가리키고 있고, 다른 곳에서 접근하지 않으니 컴파일러가 최적화를 하라는 뜻이다.

생성할 쓰레드 ID를 thread에 저장하고, attr에 특성 정보를 설정한 후에, arg를 매개변수로 사용하는 별도의 실행 흐름을 갖는 쓰레드 메인함수 start_routine 함수를 실행한다.

별도의 특성 정보를 설정하고 싶지 않다면 attr 매개변수에 NULL을 초기화한다.

단순히 말하면, thread에 지정된 ID의 쓰레드를 실행하고, 쓰레드가 수행할 함수와 함수의 매개변수를 정의하고 실행하는 함수이다.

성공시 0 , 실패시 0 이외의 값이 반환된다.

pthread_join

pthread.h 에 정의됨

함수 시그니쳐 : int pthread_join(pthread_t thread, void **status);

thread 매개변수에 전달된 ID의 쓰레드가 종료될 때까지 함수 호출한 프로세스(혹으 쓰레드)를 대기상태로 둔다.

지정된 ID의 쓰레드가 종료될때까지, 대기하는 함수이다.

status는 해당 쓰레드의 main 함수의 return 값을 받는 매개변수이다.

pthread_mutex_init

pthread.h 에 정의됨

함수 시그니쳐 : int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);

뮤텍스 생성하는 함수로 특성정보를 attr 변수를 통해 정의하고 생성된 뮤텍스의 참조 값은 mutex 포인터 변수에 저장된다.

성공시 0, 실패시 0 이외의 값이 반환된다.

pthread_mutex_destroy

pthread.h 에 정의됨

함수 시그니쳐 : int pthread_mutex_destroy(pthread_mutex_t *mutex);

mutex 포인터 변수로 참조되는 뮤텍스를 제거한다.

성공시 0 , 실패시 0 이외의 값이 반환된다.

pthread_mutex_lock

pthread.h

함수 시그니쳐 : int pthread_mutex_lock(pthread_mutex_t *mutex);

임계영역에 들어가기 전에, 호출하여, 해당 쓰레드가 임계영역을 독점하도록 만든다.

성공 시 0, 실패 시 0 이외의 값이 반환된다.

pthread_mutex_unlock

pthread.h 에 정의됨

함수 시그니쳐 : int pthread_mutex_unlock(pthread_mutex_t *mutex);

임계영역에서 작업을 마치고, 빠져나갈 때, 임계영역에 대한 독점을 해제한다.

성공 시 0, 실패 시 0 이외의 값이 반환된다.

pthread_detach

pthread.h 에 정의됨

함수 시그니쳐 : int pthread_detach(pthread_t thread);

대기 없이, 지정된 thread가 종료될 때 쓰레드를 소멸시키는 함수다.

성공 시 0, 실패 시 0 이외의 값 반환

getcwd

unistd.h 에 정의됨

함수 시그니쳐 : char* getcwd(char * buf, size_t size)

현재 작업디렉터리의 이름을 buf에 복사한 후 시작 주소를 반환합니다. -> 실패할 경우 NULL을 반환합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment