📄 thmutex.c
字号:
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
void pthread1(void *counter);
void pthread2(void *counter);
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
int Gnum = 0;
int main(void)
{
pthread_t thid1, thid2;
pthread_create(&thid1, NULL, (void*)pthread1, (void*)&g1);
pthread_create(&thid2, NULL, (void*)pthread2, (void*)&g2);
pthread_join(thid2, NULL);
pthread_join(thid1, NULL);
}
void pthread1(void *counter)
{
pthread_mutex_lock(&mutex);
while(Gnum < 5){
Gnum++;
printf("pthread1 counter %d\n", Gnum);
sleep(1);
}
pthread_mutex_unlock(&mutex);
pthread_mutex_lock(&mutex);
while(Gnum < 15){
Gnum++;
printf("pthread1 counter %d\n", Gnum);
sleep(1);
}
pthread_mutex_unlock(&mutex);
}
void pthread2(int *counter)
{
pthread_mutex_lock(&mutex);
while(Gnum < 10){
Gnum++;
printf("pthread2 counter %d\n", Gnum);
}
pthread_mutex_unlock(&mutex);
pthread_mutex_lock(&mutex);
while(Gnum < 20){
Gnum++;
printf("pthread2 counter %d\n", Gnum);
}
pthread_mutex_unlock(&mutex);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -