Я ищу pthread на C. Так что я новичок. Я пытаюсь изучить синтаксис и роли указателей в коде pthread. Может ли кто-нибудь сказать мне, какие мои ошибки в соответствии с кодом? Я не могу понять, что я сделал.pthread библиотека базовый пример не работает должным образом
Когда я пытаюсь проверить возвращаемое значение pthread_create()
Я получаю неправильные/случайные значения.
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int *f_1,*f_2,*f_3,*f_4;
void p1(void *a);
void p2(void *a);
void p3(void *a);
void p4(void *a);
int main(void){
pthread_t thread_1, thread_2, thread_3, thread_4;
int *x=1,*y=2,*z=3,*w=4;
f_1=pthread_create(&thread_1, NULL, p1,(void *)x);
f_2=pthread_create(&thread_2, NULL, p2,(void *) y);
f_3=pthread_create(&thread_3, NULL, p1,(void *) z);
f_4=pthread_create(&thread_4, NULL, p1,(void *) w);
pthread_join(thread_1,NULL);
pthread_join(thread_2,NULL);
pthread_join(thread_3,NULL);
pthread_join(thread_4,NULL);
printf("Hi! From %d. thread!",f_1);
printf("Hi! From %d. thread!",f_2);
printf("Hi! From %d. thread!",f_3);
printf("Hi! From %d. thread!",f_4);
return 0;
}
void p1(void *a){
f_1=(int *)a;
}
void p2(void *a){
f_2=(int *)a;
}
void p3(void *a){
f_3=(int *)a;
}
void p4(void *a){
f_4=(int *)a;
}
'Я не могу понять, ясно, что я сделал. Вопрос ... тогда как вы это сделали? –
Можете ли вы хотя бы объяснить, что вы * пытались * делать, и какие * конкретные * проблемы, возникающие у вас с этим кодом? –
С некоторых сайтов, но он не был скомпилирован. – QatarNotAlone