作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 gcc 中编译此代码。这没有显示任何输出。函数 sum_array() 无法被 main 函数调用。我已经包含了这些头文件:
pthread.h、stdio.h、stdlib.h
int s[4]={9},i=0,end=3;
int a[16]={1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
void *sum_array(void *arg){
s[i/4]=a[i]+a[i+1]+a[i+2]+a[i+3];
printf("%d",s[i/4]);
i=end+1;
end+=4;
}
int main(){
pthread_t t[4];
int i=0;
pthread_create(&t[0],NULL,sum_array,NULL);
pthread_create(&t[1],NULL,sum_array,NULL);
pthread_create(&t[2],NULL,sum_array,NULL);
pthread_create(&t[3],NULL,sum_array,NULL);
pthread_join(t[1],NULL);
pthread_join(t[2],NULL);
pthread_join(t[3],NULL);
pthread_join(t[4],NULL);
for(i=0;i<4;i++){
printf("s[%d]= %d \n",i,s[i]);
}
return 0;
}
无输出。
最佳答案
这里有两件事
1) 始终在打印末尾添加“\n”或使用 fflush 立即在屏幕上打印数据
2) 您将 t[4] 传递给 pthread_join,该 pthread_join 未定义且从未创建,且超出您正在使用的数组范围,因此它会等待,直到 t[4] 退出(从未创建)
关于c - 线程函数 sum_array() 无法被 main 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57603050/
我正在 gcc 中编译此代码。这没有显示任何输出。函数 sum_array() 无法被 main 函数调用。我已经包含了这些头文件: pthread.h、stdio.h、stdlib.h int s[
我是一名优秀的程序员,十分优秀!