#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>
#define oops(msg) {perror(msg); exit(errno);}
int g_counter = 0;
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
void* add_function(){
int i;
for(i = 0; i < 100; i++){
pthread_mutex_lock(&mutex1); //pthread_mutex_lock
g_counter += 2;
pthread_mutex_unlock(&mutex1);
}
}
int main(){
pthread_t thread1, thread2;
if(pthread_create(&thread1, NULL, add_function, NULL))
oops("pthread_create the thread1");
if(pthread_create(&thread2, NULL, add_function, NULL))
oops("pthread_create the thread2");
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("g_counter = %d\n", g_counter);
return 0;
}
pthread2 pthread_mutex_lock
最新推荐文章于 2023-08-07 16:20:54 发布