#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <pthread.h>
#include <unistd.h>
pthread_mutex_t mutex;
void my_print(char *str)
{
while(*str!=0)
{
putchar(*str);
fflush(stdout);
str++;
sleep(1);
}
printf("\n");
}
//线程1
void *callback_1(void *arg)
{
//pthread_mutex_t mutex= *(pthread_mutex_t *)arg;
//上锁
pthread_mutex_lock(&mutex);
my_print("hello");
//解锁
pthread_mutex_unlock(&mutex);
}
//线程2
void *callback_2(void *arg)
{
//pthread_mutex_t mutex= *(pthread_mutex_t *)arg;
//上锁
pthread_mutex_lock(&mutex);
my_print("word");
//解锁
pthread_mutex_unlock(&mutex);
}
int main()
{
//申请动态锁
pthread_mutex_init(&mutex,NULL);
//线程创建
pthread_t pth,pth2;
//pthread_create(&pth,NULL,callback_1,(void *)&mutex);
// pthread_create(&pth2,NULL,callback_2,(void *)&mutex);
pthread_create(&pth,NULL,callback_1,NULL);
pthread_create(&pth2,NULL,callback_2,NULL);
//线程等待回收(带阻塞)
pthread_join(pth,NULL);
pthread_join(pth2,NULL);
//销毁互斥锁
pthread_mutex_destroy(&mutex);
return 0;
}
08互斥锁
最新推荐文章于 2024-07-07 21:10:32 发布