#include <stdio.h>#include<pthread.h>#include<string.h>#include<sys/time.h>#defineMAX 20//define three threads to complete a count task togetherpthread_t thread[3];p thread_mutex_t mut;//Defining Mutex Variablesintnum=0;inti;void*Thread1 () {printf ("Thread1:im Thread 1"); for(i=0; i<max;i++) {printf ("thread1:num=%d \ n", num); Pthread_mutex_lock (&mut); Num++; Pthread_mutex_unlock (&mut); Sleep (2); } pthread_exit (NULL);}void*thread2 () {printf ("Thread1:im Thread 1"); for(i=0; i<max;i++) {printf ("thread1:num=%d \ n", num); Pthread_mutex_lock (&mut); Num++; Pthread_mutex_unlock (&mut); Sleep (2); } pthread_exit (NULL);}void*thread3 () {printf ("Thread1:im Thread 1"); for(i=0; i<max;i++) {printf ("thread1:num=%d \ n", num); Pthread_mutex_lock (&mut); Num++; Pthread_mutex_unlock (&mut); Sleep (2); } pthread_exit (NULL);}voidMain () {Pthread_mutex_init (&mut,null);//using default properties to initialize mutex locksPthread_create (&thread[0],null,thread1,null);//Create thread does not runPthread_create (&thread[1],null,thread1,null); Pthread_create (&thread[2],null,thread1,null); Pthread_join (thread[0],null);//Add thread 1 to wait to start executionPthread_join (thread[1],null); Pthread_join (thread[2],null);}
Multithreaded programming under Linux (1)