1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <string.h> 4 #include <signal.h> 5 #include <unistd.h> 6 #include <inttypes.h> 7 #include <pthread.h> 8 #include <sys/wait.h> 9 #include <sched.h> 10 11 void *thread1_func(void *arg) 12 { 13 int i; 14 char buf[512]; 15 16 for(i=0;i<10;i++) { 17 snprintf(buf, sizeof(buf), "thread1: %d %s\n", i, (char *)arg); 18 write(1, buf, strlen(buf)); 19 usleep(100 * 1000); 20 } 21 return NULL; 22 } 23 24 void *thread2_func(void *arg) 25 { 26 int i; 27 char buf[512]; 28 for(i=0;i<20;i++) { 29 snprintf(buf, sizeof(buf), "thread2: %d %s\n", i, (char *)arg); 30 write(1, buf, strlen(buf)); 31 usleep(150 * 1000); 32 } 33 return NULL; 34 } 35 36 void test_pthread(void) 37 { 38 pthread_t tid1, tid2; 39 40 pthread_create(&tid1, NULL, thread1_func, "hello1"); 41 pthread_create(&tid2, NULL, thread2_func, "hello2"); 42 pthread_join(tid1, NULL); 43 pthread_join(tid2, NULL); 44 printf("End of pthread test.\n"); 45 } 46 47 int main(int argc, char **argv) 48 { 49 test_pthread(); 50 return 0; 51 } 52