:初めてC言語でpthreadを使うと、これらのものから何も返されないのですか?次のコードで
int main (int argc, const char * argv[]) {
// insert code here...
pthread_t t1, t2;
int sp1, sp2;
sp1 = pthread_create(&t1, NULL, getScalarProduct, NULL);
sp2 = pthread_create(&t2, NULL, getScalarProduct, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
printf("Seperate scalars: %d %d\n", sp1, sp2);
finalScalarProd = sp1 + sp2;
printf("Result: %d\n", finalScalarProd);
return 0;
}
は私がfinalScalarProductのためのゼロ以外のバック他の何かを得ることができないしてきた、とSP1およびSP2の両方にもゼロです。私はそれがpthread_joinで渡されるNULL引数と関係があると考えています。私は本当にこの議論が何であるか理解していません。
'pthread_create'の戻り値はスレッド関数の戻り値ではありません。スレッド関数は、それが戻るまでにはまだ実行されていないかもしれません。 'pthread_create'の戻り値は単に成功または失敗を示します。 – Puppy