컴파일 : gcc thread1.c -o tr1 -lpthread
#include <pthread.h>
int pthread_create(
pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void*), void *restrict arg);
성공시 0, 실패시 0이외의 값 반환
thread : 생성할 쓰레드의 ID저장을 위한 변수의 주소 값 전달
attr : 쓰레드에 부여할 특성 정보의 전달을 위한 매개변수 NULL전달 시 기본적인 특성의 쓰레드
start_routine : 쓰레드의 main함수 역할을 하는, 별도 실행흐름이 시작되는 함수의 주소 값 전달.
arg : 세번째 인자를 통해 등록된 함수가 호출될 때 전달할 인자의 정보를 담고 있는 변수의 주소 값 전달.
ex)
#include <stdio.h>
#include <pthread.h>
void* thread_main(void *arg);
int main(int argc, char *argv[]){
pthread_t t_id;
int thread_param=5;
if(pthread_create(&t_id, NULL, thread_main, (void*)&thread_param)!=0){
puts("pthread_create() error");
return -1;
};
sleep(10); puts("end of main");
return 0;
}
void* thread_main(void *arg){
int i;
int cnt=*((int*)arg);
for(I=0;i<cnt;i++){
sleep(1);
puts("running thread");
}
return NULL;
}
#include <pthread.h>
int pthread_join(pthread_t thread, void **status);
성공시 0, 실패 시 0이외값 반환
첫번째 인자로 전달되는 ID의 쓰레드가 종료 될때까지, 함수를 호출한 프로세스(또는 쓰레드)를 대기상태에 둔다. 뿐만아니라 쓰레드의 main함수가 반환하는 값까지 얻을 수 있다.
thread : 이매개변수에 전달되는 ID의 쓰레드가 종료될 때까지 함수는 반환하지 않는다.
status : 쓰레드의 main 함수가 반환하는 값이 저장 될 포인터변수의 주소값
흐름도
'Programming' 카테고리의 다른 글
애니메이션 버튼 (0) | 2014.09.15 |
---|---|
파일업로드 (0) | 2014.09.15 |
Select 함수 정리 (0) | 2014.09.15 |
select() 기반 echo_server (0) | 2014.09.15 |
Pcap library (0) | 2014.09.15 |