gpt4 book ai didi

C++ 多线程

转载 作者:行者123 更新时间:2023-11-28 02:36:43 24 4
gpt4 key购买 nike

<分区>

我找不到以下程序中的错误在哪里使用两个线程打印偶数和奇数。请建议

#include<iostream>
using namespace std;
pthread_mutex_t t1 = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER;
void* print_even(void*);
void* print_odd(void*);
static int data = 0;

int main()
{
pthread_t a[2];
pthread_create(&a[0],NULL,print_even,NULL);
pthread_create(&a[1],NULL,print_odd,NULL);
pthread_join(a[0],NULL);
pthread_join(a[1],NULL);
pthread_exit(NULL);
}
void* print_even(void* p)
{
do{
pthread_mutex_lock(&t1);
if(data%2 != 0)
{
pthread_cond_wait(&cond,&t1);
}
cout<<data;
data++;
pthread_cond_signal(&cond);
if(data > 10){
pthread_mutex_unlock(&t1);
break;
}
pthread_mutex_unlock(&t1);
}while(1);
}
void* print_odd(void* p)
{
do{
pthread_mutex_lock(&t1);
if(data%2 != 1)
{
pthread_cond_wait(&cond,&t1);
}
cout<<data;
}
data++;
pthread_cond_signal(&cond);
if(data > 10)
{
pthread_mutex_unlock(&t1);
break;
}
}while(1);
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com