thmutex.c
来自「嵌入式linux学习之uclinux多线程编程实例 (测试平台S3C44B0X」· C语言 代码 · 共 67 行
C
67 行
#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 + =
减小字号Ctrl + -
显示快捷键?