Linux/자료

PTHREAD

Houkibosi 2013. 9. 23. 13:56

  컴파일 옵션은 -pthread


단순 쓰레드를 생성하여 HelloWorld를 출력



  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <pthread.h>
  4 #include <time.h>
  5
  6 // 쓰레드 번호부여를 위한 변수
  7 int n=0;
  8
  9 // HelloWorld 출력을 하는 쓰레드 함수
 10 void* Hello(void* arg)
 11 {
 12     int i=0, num=++n;
 13     srand(time(NULL));
 14
 15     for(i=0; i<10; i++)
 16     {
 17         printf("(%dth)Hello World!!\n", num);
 18         sleep(rand()%5);
 19     }
 20 }
 21
 22 int main()
 23 {
 24     int i=0;
 25     int result=0;
 26     srand(time(NULL));
 27     pthread_t t[3];
 28
 29     // 쓰레드 생성
 30     for(i=0; i<3; i++)
 31         pthread_create(&t[i], NULL, Hello, NULL);
 32
 33     // 메인 출력
 34     for(i=0; i<10; i++)
 35     {
 36         printf("(Main)Hello World!!\n");
 37         sleep(rand()%5);
 38     }
 39
 40     // 쓰레드가 끝나기를 기다림
 41     for(i=0; i<3; i++)
 42         pthread_join(t[i], NULL);
 43
 44     return 0;
 45 }