forループのインデックスをpthread_createの引数にラッパーオブジェクトを介して渡したいとします。ただし、スレッドから印刷された整数が正しくありません。 以下のコードが特別な順序で印刷されることを期待しました。forループインデックスをCのpthread_create引数オブジェクトに渡す
IDは、この代わりに整数1,3スレッド
に渡されることはない印刷しかし、IDは3であり、IDは2であり、IDが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