互斥由来以及相关概念
运行如下代码可以看到,这里是一个抢票的逻辑,让五个线程同时去抢100张票,如果对线程不加以限制的话,会产生票会变为负数也就是过度抢票的情况。
int tickets=100;
void* route(void* args)
{
char* id=(char*)args;
while(1)
{
if(tickets > 0)
{
usleep(1000);
printf("我是线程%s,正在进行抢票,票还剩%d张\n",id,tickets);
tickets--;
}
else
{
printf("票已经抢完了\n");
break;
}
}
}
int main()
{
pthread_t t1, t2, t3, t4;
pthread_create(&t1, NULL, route, (void*)&#