- 进程与进程的锁和线程与线程的锁是不一样的。
- abc三部曲
- pthread_mutex_t lock =PTHREAD_MUTEX_INITIALIZER;//创建一个锁
- pthread_mutex_lock(&lock);//上锁
- pthread_mutex_unlock(&lock);//开锁
- 对于全局变量,共享数据就是临界区,需要使用锁。
int ticketAmount =2;
//这里定义一个pthread_mutex_t
pthread_mutex_t lock=PTHREAD_MUTEX_INITIALIZER;
void* ticketAgent(void* arg){
//---------需要使用锁
pthread_mutex_lock(&lock);
int t =ticketAmount;
if(t>0){
printf("One ticket sold!\n");
t--;
}else{
printf("Ticket sold out!\n");
}
ticketAmount=t;
//---------
pthtread_mutex_unlock(&lock);
pthread_exit(0);
}
标签:ticketAmount,严谨,int,lock,互斥,实验,pthread,mutex
From: https://www.cnblogs.com/zhudachang/p/18156225