如何解决如何使用pthread从两个数组中查找公用值
#include <stdio.h>
#include <pthread.h>
#define MAX_THREAD 4
long long int arr1[100];
long long int arr2[100];
int n,m;
int part = 0;
void* array_search(void* arg){
int thread_part = part++;
//printf("%d\n",thread_part);
if(part==4)
{
for(int i = thread_part *(n/4) ; i < n ; i++){
for(int j = thread_part*(m/4) ; j < m;j++){
if(arr1[i] == arr2[j]){
printf("%lld\n",arr1[i]);
}
}
}
}
else{
for(int i = thread_part *(n/4) ; i < ((thread_part + 1) *(n/4)) ; i++){
for(int j = thread_part*(m/4) ; j < ((thread_part + 1) *(m/4));j++){
if(arr1[i] == arr2[j]){
printf("%lld\n",arr1[i]);
}
}
}
}
}
int main()
{
printf("Enter the element in First Array:");
scanf("%d",&n);
for(int i = 0 ; i < n; i++){
scanf("%lld",&arr1[i]);
}
printf("Enter the element in Second Array:");
scanf("%d",&m);
for(int i = 0 ; i < m; i++){
scanf("%lld",&arr2[i]);
}
pthread_t thread[MAX_THREAD];
for (int i = 0; i < MAX_THREAD; i++){
pthread_create(&thread[i],NULL,array_search,(void*)NULL);
}
for (int i = 0; i < MAX_THREAD; i++){
pthread_join(thread[i],NULL);
}
return 0;
}
实际上我的代码有问题。当我输入以下输入时,它什么也不打印。我不明白为什么会这样。
Enter the element in First Array:3
2000 4000 5000
Enter the element in Second Array:4
2000 70000 40000 300000
(no output here)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。