/*===============================================================
* Copyright(C) 2020 Burgess Fan aLL rights reserved.
*
* 文件名称:mutex.c
* 创 建 者:Burgess
* 创建日期:2020年05月10日
================================================================*/
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <stdlib.h>
pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
int sum=0;
void* thr1(void *arg)
{
while(1)
{
pthread_mutex_lock(&mutex);//加锁
printf("I am thread No1,hello world!\n");
sleep(1);
pthread_mutex_unlock(&mutex);//释放锁
sleep(1);//增加睡眠时间确保不会让线程本身抢到锁
}
}
void* thr2(void *arg)
{
while(1)
{
pthread_mutex_lock(&mutex);
printf("I am thread No2,HELLO WORLD!\n");
sleep(1);
pthread_mutex_unlock(&mutex);
sleep(1);
}
}
int main()
{
pthread_t tid[2];
pthread_create(&tid[0],NULL,thr1,NULL);
pthread_create(&tid[1],NULL,thr2,NULL);
pthread_join(tid[0],NULL);
pthread_join(tid[1],NULL);
return 0;
}
![]()