#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
//pthread_mutex_t lock;
int ticketcount=5;
void* salewinds1(void* args)
{
while(ticketcount>0)
{
printf("window1 start %d\n",ticketcount);
sleep(1);
ticketcount--;
printf("sale ticket finish:%d\n",ticketcount);
}
}
void* salewinds2(void* args)
{
while(ticketcount>0)
{
printf("windows2 start:%d\n",ticketcount);
sleep(1);
ticketcount--;
printf("sale finish:%d\n",ticketcount);
}
}
int main(int argc,const char* argv[])
{
pthread_t thd1;
pthread_t thd2;
int val1=1;
int val2=2;
//pthread_mutex_init(&lock,NULL);
pthread_create(&thd1,NULL,salewinds1,NULL);
pthread_create(&thd2,NULL,salewinds2,NULL);
pthread_join(thd1,(void**)&val1);
pthread_join(thd2,(void**)&val2);
printf("val1:%d....val2:%d\n",val1,val2);
//pthread_mutex_destroy(&lock);
小白学c++之多线程函数返回值
最新推荐文章于 2023-11-19 15:05:59 发布
本文探讨了C++中多线程函数返回值的问题,通过一段代码展示了在并发执行过程中可能出现的线程安全问题,导致变量val1和val2出现垃圾值。分析了运行结果并提出了可能的解决方案。
摘要由CSDN通过智能技术生成