본문 바로가기

프로그래밍/C,C++

POSIX 쓰레드 함수들

 

#include <pthread.h>

POSIX 쓰레드

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

int pthread_join(pthread_t th, void **thread_return);

int pthread_detach(pthread_t th);

void pthread_exit(void *retval);

pthread_t pthread_self(void);

 

다른 쓰레드의 종료

int pthread_cancel(pthread_t thread); 

int pthread_setcancelstate(int state, int *oldstate);

PTHREAD_CANCEL_ENABLE : 취소허용

PTHREAD_CANCEL_DISABLE

int pthread_setcanceltype(int type, int *oldtype);

PTHREAD_CANCEL_ASYNCHRONOUS :  바로 종료

PTHREAD_CANCEL_DEFERRED : 세마포어, JOIN, 뮤텍스등의 대기점에서 벗어나면 종료

void pthread_testcancel(void); 

 

 

뮤텍스

int pthread_mutex_init(pthread_mutex_t * mutex, const pthread_mutex_attr *attr);

pthread_mutex_t a_mutex = PTHREAD_MUTEX_INITIALIZER; 와 같이 상수를 사용해 초기화를 할 수도 있다.

int pthread_mutex_destory(pthread_mutex_t *mutex);

int pthread_mutex_lock(pthread_mutex_t *mutex);

int pthread_mutex_trylock(pthread_mutex_t *mutex);

잠글 수 없을때 대기하는것이 아닌 에러를 바로 리턴함.

int pthread_mutex_unlock(pthread_mutex_t *mutex); 

 

 

조건변수 : 대기중인 쓰레드를 깨운다. 임의의 하나만 깨움.

int pthread_cond_init(pthread_cond_t *cond, const pthread_cond_attr *attr);

pthread_cond_t cond = PTHREAD_COND_INITIALIZER; 와 같이 초기화를 할 수도 있다.

int pthread_cond_signal(pthread_cond_t *cond);

int pthread_cond_broadcast(pthread_cond_t *cond);

int pthread_cond_wait(pthread_cond_t cond, pthread_mutex_t *mutex); 

int pthread_cond_timedwait(pthread_cont_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime);

int pthread_cond_destroy(pthread_cond_t *cond);

'프로그래밍 > C,C++' 카테고리의 다른 글

[C#] 파일 읽고,쓰기 기초  (0) 2013.09.12
[C#] 이미지 처리 기본 사항들  (0) 2013.09.12
[C#] 이벤트  (0) 2013.09.12
[C#] 폼 띄우기  (0) 2013.09.12
GCC 옵션  (0) 2011.07.21
[Linux] 세마포어 설정  (0) 2010.04.15
[Linux] 라이브러리  (0) 2010.01.28
바이트오더~ 비트 스트림~  (0) 2009.06.04
delete obj, delete [] obj 차이  (0) 2009.06.04
[C]  (0) 2009.06.04