for 루프의 인덱스를 래퍼 객체를 통해 pthread_create의 인수에 전달하고 싶습니다. 그러나 스레드에서 인쇄 된 정수가 올바르지 않습니다. 아래의 코드가 특별한 순서없이 인쇄 될 것으로 예상했습니다.for 루프 인덱스를 C에서 pthread_create 인수 객체로 전달
ID는이 대신 정수 1,3 스레드
로 전달되지 않는다 인쇄 그러나 ID가 3이며, ID는 2, 번호가 1, 0
인 ID는 0, ID는 0, ID가, ID가 2이고, 0
struct thread_arg {
int id;
void * a;
void * b;
}
void *run(void *arg) {
struct thread_arg * input = arg;
int id = input->id;
printf("id is %d, ", id)
}
int main(int argc, char **argv) {
for(int i=0; i<4; i++) {
struct thread_arg arg;
arg.id = i;
arg.a = ...
arg.b = ...
pthread_create(&thread[i], NULL, &run, &arg);
}
}
작동합니다! 도와 주셔서 감사합니다 :) – GucciProgrammer