컴파일 : 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