1 #include<stdio.h>
2 #include<pthread.h>
3 #include<stdlib.h>
4 #include<unistd.h>
5
6 int num=0;
7 pthread_mutex_t lock;
8 pthread_t th;
9
10
11 void* th_handler(void* p){
12 int i=0;
13 for(;i<10;i++){
14 pthread_mutex_lock(&lock);
15 num++;17 printf("sub num=%d\n",num);
18 pthread_mutex_unlock(&lock);
19 sleep(1);
20 }
21 }
22
23
2425 int main(){
26
27 pthread_mutex_init(&lock,NULL);
28 pthread_create(&th,NULL,th_handler,(void*)0);
//pthread_detach(th);设置分离线程不需要pthread_join();
29 sleep(1);
30 int i=0;
31 for(;i<10;i++){
32 pthread_mutex_lock(&lock);
33 num++;35 printf("main num=%d\n",num);
36 pthread_mutex_unlock(&lock);
37 sleep(1);
38 }
39 pthread_mutex_destroy(&lock);
40 pthread_join(th,0);
41
42 }